Laravel 5.1 路由未定义重定向

Laravel 5.1 route not defined redirect

需要询问错误,当我尝试重定向我的注销时

这是用户控制器:

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.

请问有什么问题吗?我有没有搞错?

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

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');

尽管如果您更改此端点,这会中断。我建议命名您的路线并在您的代码中使用它们。

将您的 return redirect()->route('auth/login'); 更改为

return redirect('auth/login');

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