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...
}
创建我的中间件后,我在 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...
}