我想更改为当他们尝试访问要求用户登录的页面时要重定向的未登录用户的位置。
我在Exceptions/Handler.php
尝试过像这样改变它
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest(route('/users/login'));
}
但是当我尝试访问这样的页面时,我遇到了错误
InvalidArgumentException Route [/ users / login]未定义。
我在web.php中的路线是
Route::get ('/users/login', ['uses' => 'UsersController@getLoginPage', 'before' => 'guest']);
如果我放置房屋/
路线[/]未定义。
这是应该做的正确的地方吗?
答案 0 :(得分:2)
您必须提供路线名称而不是网址, 在数组内部执行此操作:
Route::get ('/users/login', ['uses' => 'UsersController@getLoginPage', 'before' => 'guest', 'as' => 'user.login']);
并称之为:
return redirect()->guest(route('user.login'));
答案 1 :(得分:0)
要使用route()
帮助程序呼叫您的登录路线,您必须为路线命名。
Route::get ('/users/login', ['uses' => 'UsersController@getLoginPage', 'before' => 'guest'])->name('users.login');
所以你可以做到
return redirect()->guest(route('users.login'));