2016-12-30 189 views
2

需要问有关错误,当我试图重定向我注销Laravel 5.1路由重定向

这是UserController中:

public function logout() 
{ 

    Auth::logout(); 
    return redirect()->route('auth/login'); 
} 

这是我的路线:

Route::get('/', function() { 
    return view('welcome'); 
}); 
// Authentication routes... 
Route::get('auth/login', 'Auth\[email protected]'); 
Route::post('auth/login', 'Auth\[email protected]'); 
Route::get('auth/logout', 'Auth\[email protected]'); 

// Registration routes... 
Route::get('auth/register', 'Auth\[email protected]'); 
Route::post('auth/register', 'Auth\[email protected]'); 

Route::get('testing', '[email protected]'); 
Route::get('logout', '[email protected]'); 

我认为,在路线上一切正常,并且我已正确定义登录(如Laravel文档)

但它仍然会出现此错误:

InvalidArgumentException in UrlGenerator.php line 306: 
Route [auth/login] not defined. 

你可以请问什么是错的?我犯了什么错误吗?

非常感谢,祝你有个愉快的一天!

回答

5

route方法需要一个名称,而不是URI。所以你需要命名你的路线。

像这样:

Route::get('auth/login', ['as' => 'login', 'uses' => 'Auth\[email protected]']); 

或者:

Route::get('auth/login', 'Auth\[email protected]')->name('login'); 

现在,您可以拨打return redirect()->route('login');

请参阅该文档为Named Routes


或者,你可以提供URI在redirect方法是这样的:

return redirect('auth/login'); 

但如果你改变这个端点,这将打破。我建议您命名您的路线并在代码中使用这些路线。

+0

谢谢,现在工作对我来说:) – Mario

1

改变你的return redirect()->route('auth/login');

return redirect('auth/login'); 

return Redirect::to('auth/login');

+0

谢谢你额外的选项:) – Mario