我正在尝试在登录后设置一个简单的重定向。日志记录部分有效,但重定向失败,因为它说路由不存在。
这是我的路由文件:
Route::any('/', array('uses' => 'UsersController@login'));
Route::any('/manage', array('uses' => 'AdminController@showWelcome'));
如果我去 http://example.com/manage,路线效果很好......拉拉维尔的标志在那里,我的另一页也很好。
但是当我这样做时:
Redirect::route('/manage');
页面死了,说:
Route [/manage] not defined
有人有想法吗?
当你使用Redirect::route
方法时,你应该使用路由名称,在这种情况下,你必须使用一个名称来声明路由,即
Route::any('/manage', array('as' => 'manage', 'uses' => 'AdminController@showWelcome'));
在这里,as
值是route
的名称,所以,现在您可以使用
return Redirect::route('manage'); // 'manage' is the name of the route to redirect
或者,您也可以使用Redirect::to('url')
方法,即
return Redirect::to('/manage'); // '/manage' is the url to redirect
选中重定向到命名路由和命名路由。
此错误"未定义路由 [管理]"是因为未定义路由名称"管理"。
路由名称和路由路径是两个不同的东西。
并且您已将路由路径声明为管理员,
Route::any('manage', 'AdminController@showWelcome');
然而
return redirect()->route('manage');
表示您要将流重定向到名为"管理"的路由。
要对错误进行排序,
定义路由名称"manage",如下所示,在下面定义的数组中定义"as"=>"route_name"。
溶液:
Route::any('manage', [
'as' => 'manage',
'uses' => 'AdminController@showWelcome'
]);
请参考链接 : https://laravel.com/docs/master/routing#named-routes
使用 return 重定向::intended('mannage');