需要询问错误
这是UserController:
public function logout()
{
Auth::logout();
return redirect()->route('auth/login');
}
这是我的路线:
Route::get('/', function () {
return view('welcome');
});
// Authentication routes...
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
// Registration routes...
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');
Route::get('testing', 'UserController@test');
Route::get('logout', 'UserController@logout');
我认为,在路线上一切正常,我正确定义了登录(如Laravel文档)
但仍然会出现此错误:
InvalidArgumentException in UrlGenerator.php line 306:
Route [auth/login] not defined.
你能解决什么问题吗?我犯了什么错误吗?
非常感谢,祝你有愉快的一天!
答案 0 :(得分:5)
route
方法需要名称,而不是URI。所以你需要为你的路线命名。
像这样:
Route::get('auth/login', ['as' => 'login', 'uses' => 'Auth\AuthController@getLogin']);
或者:
Route::get('auth/login', 'Auth\AuthController@getLogin')->name('login');
现在您可以致电return redirect()->route('login');
请参阅Named Routes的文档。
或者,您只需在redirect
方法中提供URI,如下所示:
return redirect('auth/login');
如果您更改此端点,这会破坏。我建议命名你的路线并在你的代码中使用它们。
答案 1 :(得分:1)
将您的return redirect()->route('auth/login');
更改为
return redirect('auth/login');
或return Redirect::to('auth/login');