laravel 5.6 中的多个重定向

Multiple redirects in laravel 5.6

创建我的中间件后,我在 Laravel 应用程序中获得了多个重定向,这肯定是我做错了什么,但是 我不知道在哪里。

public function handle($request, Closure $next)
{
    $route = Route::currentRouteName();

    if($route!= "dashboard" || $route != "verify.again")
    {

        if(! is_null($request->user()) && ! $request->user()->verified) {
            return redirect()->route("verify.again");
        }
        elseif(!$request->user()->mobile){
            return redirect()->route("verify.again");
        }
         else{
             return $next($request);
        }


    }


    return $next($request);
}

控制器

public function index(){

    $user = Auth::user();
    if(!$user->verified)
    {
        return view("dashboard.verification.index", ["verify"=>"email", ]);
    }
    elseif(!$user->mobile)
    {
        return view("dashboard.verification.index", ["verify"=>"mobile", ]);
    }

    return view("dashboard.usermaster");

}

对于 verify.again 路由,您的 if 语句将始终为 true,因为 "verify.again" 始终不同于 "dashboard"。这会导致重定向到相同路由和中间件的无限循环。所以解决方案实际上可能只是将 OR || 替换为 AND &&:

if($route != "dashboard" && $route != "verify.again") {
    // your code here...
}