Laravel 5 - 如何从使用Route :: controllers()定义的路由获取动作名称(用于获取带有route()函数的模板中的URL)?

时间:2015-04-02 20:24:58

标签: php laravel routing laravel-5

我是Laravel的新手,我尝试使用named routes生成网址,但我找不到与此方案相关的任何文档。我想生成网址对于Laravel随附的默认基于身份验证的路由,但来自Silex我真的不喜欢使用url函数生成URL并指定路径的想法..我喜欢使用我给出的绑定名称路由(here are some examples from silex),有没有办法指定一个名称(或者我是否可以使用动态名称)来生成使用Route::controllerRoute::controllers定义的路由的URL?例如,我会在模板中传递给route以生成logout网址?

Route::controllers([
    'auth' => 'Auth\AuthController',
    'password' => 'Auth\PasswordController',
]);

如果我想这样做,我是否只需要挖掘特征并手动指定每种控制器方法?

2 个答案:

答案 0 :(得分:0)

您可以将第3个参数中的路径名称设置为controller

Route::controller('auth', 'Auth\AuthController', [
    'getLogin' => 'auth.login',
]);

没有办法大规模分配它们。

答案 1 :(得分:0)

使用Route::controller时,您可以设置不同控制器操作的名称:

Route::controller('auth', 'Auth\AuthController', [
    'getLogin' => 'auth.login',
    'getLogout' => 'auth.logout',
    // and so on
]);

但是,您也可以使用action()帮助程序代替route()url()。它允许您指定要为其生成URL的控制器和方法:

action('Auth\AuthController@getLogin')