【问题标题】:Laravel 5 - how to get action names (for getting urls in templates with route() function) from routes defined using Route::controllers()?Laravel 5 - 如何从使用 Route::controllers() 定义的路由中获取操作名称(用于使用 route() 函数获取模板中的 url)?
【发布时间】:2015-04-02 20:24:58
【问题描述】:

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

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

如果我想这样做,我是否只需要深入研究特征并手动指定每个控制器方法?

【问题讨论】:

    标签: php laravel routing laravel-5


    【解决方案1】:

    使用Route::controller时可以为不同的控制器动作设置名称:

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

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

    action('Auth\AuthController@getLogin')
    

    【讨论】:

      【解决方案2】:

      您可以将路由名称作为数组传递给controller 的第三个参数:

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

      没有办法批量分配它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-01
        • 2014-08-26
        • 2021-09-19
        相关资源
        最近更新 更多