Laravel 在中间件内部重定向?
Laravel redirect inside of middleware?
我有一个通过登录检查的中间件,用户有多少游戏,如果用户有多个游戏,我想显示另一个视图,但如果用户有多个游戏,我每次都会出现重定向错误:
这是为了以防万一$assigned_games > 1
$games = Auth::user()->userGames;
$assigned_games = count($games);
if ($assigned_games == 1) {
return $next($request);
} elseif ($assigned_games > 1) {
return redirect()->route('games.board');
} elseif ($assigned_games < 1) {
echo "no game bought";
exit;
}
我也只尝试了 return route('games.board')
但它不起作用。
如何在此处设置正确的重定向?
如果你的路由都在中间件内,那么你应该检查当前路由,如果它与你正在重定向的相同,你不应该重定向以避免重定向循环
$games = Auth::user()->userGames;
$assigned_games = count($games);
if ($assigned_games == 1) {
return $next($request);
} elseif ($assigned_games > 1 && \Route::currentRouteName() != 'games.board') {
return redirect()->route('games.board');
} elseif ($assigned_games < 1) {
echo "no game bought";
exit;
} else {
return $next($request);
}
我有一个通过登录检查的中间件,用户有多少游戏,如果用户有多个游戏,我想显示另一个视图,但如果用户有多个游戏,我每次都会出现重定向错误:
这是为了以防万一$assigned_games > 1
$games = Auth::user()->userGames;
$assigned_games = count($games);
if ($assigned_games == 1) {
return $next($request);
} elseif ($assigned_games > 1) {
return redirect()->route('games.board');
} elseif ($assigned_games < 1) {
echo "no game bought";
exit;
}
我也只尝试了 return route('games.board')
但它不起作用。
如何在此处设置正确的重定向?
如果你的路由都在中间件内,那么你应该检查当前路由,如果它与你正在重定向的相同,你不应该重定向以避免重定向循环
$games = Auth::user()->userGames;
$assigned_games = count($games);
if ($assigned_games == 1) {
return $next($request);
} elseif ($assigned_games > 1 && \Route::currentRouteName() != 'games.board') {
return redirect()->route('games.board');
} elseif ($assigned_games < 1) {
echo "no game bought";
exit;
} else {
return $next($request);
}