我正在尝试在登录后设置一个简单的重定向。 登录部分有效但重定向失败,因为它表示路由不存在。
这是我的路线档案:
Route::any('/', array('uses' => 'UsersController@login'));
Route::any('/manage', array('uses' => 'AdminController@showWelcome'));
如果我去http://example.com/manage,路线就可以正常工作...... laravel的标志就在那里,我的另一页也很好。
但是当我这样做时:
Redirect::route('/manage');
页面死了说:
Route [/manage] not defined
有人有想法吗?
答案 0 :(得分:16)
使用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
答案 1 :(得分:1)
此错误"路由[manage]未定义"是因为路线名称" manage"没有定义。
路线名称和路线路径是两回事。
您已将路径路径声明为admin,
Route::any('manage', 'AdminController@showWelcome');
然而,
return redirect()->route('manage');
表示您将流重定向到名为" manage"的路由。
要对错误进行排序,
定义路线名称" manage"如下所示,在下面定义的数组中使用' as' => ' ROUTE_NAME'
解决方案:
Route::any('manage', [
'as' => 'manage',
'uses' => 'AdminController@showWelcome'
]);
答案 2 :(得分:-2)
使用return Redirect :: expected(' mannage');