【发布时间】:2017-04-22 10:18:55
【问题描述】:
我通过登录有一个中间件检查,用户有多少游戏,如果用户有多个游戏,我想显示另一个视图,但如果用户有多个游戏,我每次重定向错误:
以防万一$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'),但它不起作用。
如何在此处设置正确的重定向?
【问题讨论】:
-
你得到什么错误?
-
@AlexeyMezenin“重定向你太多次了。”
-
代码是正确的,但确保路由 games.board 不使用此中间件,因为如果 games.board 路由使用该中间件,它将进入重定向循环,因此您重定向的路由不应再次重定向.
-
@Sam 是的,它在里面,是否可以在那里创建一个异常?
-
你应该在中间件中抛出异常,因为中间件是先执行的,然后是控制器方法。
标签: laravel laravel-5 laravel-routing laravel-middleware