Laravel 5.1路由未定义重定向

Mar*_*rio 2 php routes laravel-5.1

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

这是UserController:

public function logout()
{

    Auth::logout();
    return redirect()->route('auth/login');
}
Run Code Online (Sandbox Code Playgroud)

这是我的路线:

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');
Run Code Online (Sandbox Code Playgroud)

我想,在路线上一切正常,我正确定义了登录(如Laravel文档)

但它仍然需要这个错误:

InvalidArgumentException in UrlGenerator.php line 306:
Route [auth/login] not defined.
Run Code Online (Sandbox Code Playgroud)

有什么问题可以取悦吗?我犯了什么错吗?

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

jsz*_*ody 5

route方法需要名称,而不是URI.所以你需要为你的路线命名.

像这样:

Route::get('auth/login', ['as' => 'login', 'uses' => 'Auth\AuthController@getLogin']);
Run Code Online (Sandbox Code Playgroud)

要么:

Route::get('auth/login', 'Auth\AuthController@getLogin')->name('login');
Run Code Online (Sandbox Code Playgroud)

现在你可以打电话了 return redirect()->route('login');

请参阅命名路由的文档.


或者,您可以redirect像这样在方法中提供URI :

return redirect('auth/login');
Run Code Online (Sandbox Code Playgroud)

如果你改变这个端点,这会破坏.我建议命名你的路线并在你的代码中使用它们.