💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ مرتضی حرمتی
خطای لینک ارسال شده به ایمیل کاربر
مهرداد سامی حل شده توسط مهرداد سامی

سلام استاد خسته نباشید من لینک رو میفرستم و به ایمیل کاربر میره ولی وقتی کاربر کلیک میکنه به این erorr که واقعا نمیدونم چیه ؟

throw new InvalidArgumentException("Route [{$name}] not defined."); 

این exception از متود urlGenerator واسه من فرستاده میشه که روت لاگین در سیستم موجود نیست در حالی که من روت لاگین رو دارم 

Route [login] not defined.

اصلا نمیفهمم چرا داره به این روت میزنه من بهش گفتم که ایمیل به روت verify  بزنه و لینکشم که میبینم همون  verify روت منه

http://localhost/auth/email/verify?email=mori3nt3z%40gmail.com&expires=1563790651&signature=e002c0b1ddf49425c67bf2d8829642aeb67827cabeaf379934189fb6d85afff8

سلام ... احتمال میدم مشکل از middleware باشه ... داخل کنترلرتون از middleware auth استفاده کردید؟ 

چون اگه از اون استفاده کنید باید کاربر حتما لاگین باشه در غیراینصورت اونو ریدارکت میکنه به روت لاگین ... 

مهرداد سامی ۳۱ تیر ۱۳۹۸، ۰۹:۰۱

بله استاد توی کانستراتور verificationontroller این قسمت خودش به میدلور Auth زده شده  , وتوی میدلور ChekEmailStatus هم این کد رو مثه شما زدم 

<?php
namespace App\Http\Middleware;
use Closure;
class CheckEmailStatus
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if($request->user() && !$request->user()->hasVerifiedEmail()){
            session()->flash('mustVerifiedEmail',true);
        }
        return $next($request);
    }
}

 

مرتضی حرمتی ۳۱ تیر ۱۳۹۸، ۱۰:۰۱

مشکلت به این خاطر هستش که داخل فایل env مشخص نکردی که اسم سایتت رو روی localhost تنظیم کردی... به این خاطر زمانی که ایمیل ارسال میکنه سمت کاربر با آدرس localhost میفرسته ... در صورتی که شما داخل سایت laraticket.pro لاگین کردی و session شما برای اون سایت ایجاد شده... به همین خاطر زمانی که روی اون لینک کلیک میکنید شما میرید داخل localhost و خب شما داخل اون لاگین نیستید پس در نتیجه middleware auth جلوی شمارو میگیره و شما رو هدایت میکنه به route لاگین ...

بهترین پاسخ
مهرداد سامی ۳۱ تیر ۱۳۹۸، ۲۰:۳۶