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');
需要询问错误,当我尝试重定向我的注销时
这是用户控制器:
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');