Laravel 4 - 路由未定义,在重定向时


Laravel 4 - route is not defined, on redirect

我正在尝试在登录后设置一个简单的重定向。日志记录部分有效,但重定向失败,因为它说路由不存在。

这是我的路由文件:

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