【问题标题】:Resource controller name inside a route group in LaravelLaravel 路由组内的资源控制器名称
【发布时间】:2015-07-20 12:50:56
【问题描述】:

我有这样的路线:

Route::group(['prefix'=>'admin'],function(){
    Route::resource('users','UserController'); // <-- what is the name of this route
});

我如何通过名称来寻址users 路由,例如route('users')? 我测试了usersadmin.users,但没有帮助。

【问题讨论】:

    标签: laravel routes


    【解决方案1】:

    我是admin/users

    组中控制器的 url 将是组前缀,然后是控制器资源名称。 prefix/resource

    【讨论】:

    • 谢谢,但我想要路由名称而不是 url
    【解决方案2】:

    当您向控制器 Route::resource(...) 注册资源丰富的路由时,这个简单的声明会创建多个路由来处理各种操作 (list of all actions)。

    所以在admin 路由组中,您将拥有这样的路由名称:

    • admin.users.index 获取 admin/users
    • admin.users.store 用于发布 admin/users
    • admin.users.show 获取 admin/users/{id}
    • 等等...

    基本上,您可以使用php artisan route:list列出所有路由名称

    【讨论】:

    • 这是一个很好的答案,我想知道为什么 op 没有将其标记为答案。
    • 我想知道为什么这在 laravel 5.4 中对我不起作用:/前缀下的资源没有获得路由名称中的前缀
    • @Srneczek,在 laravel 5.4 中,您应该明确命名您的组(如果需要)。 This answer 应该可以帮助你弄清楚细节。
    • op 希望通过其名称route('users') 访问路由,而不是通过 url。我也有同样的问题
    【解决方案3】:

    通过使用php artisan route:list 命令将所有路由打印到终端并查看其名称。它将显示users.indexusers.createusers.update 等等。 用法:

    route('users.index');
    //output: example.com/admin/users
    

    【讨论】:

      【解决方案4】:

      使用这个

      Route::group(['as'=>'admin.'  ,'prefix'=>'admin'],function(){
          Route::resource('users','UserController'); 
      });
      

      路线名称将是

      admin.users.index
      admin.users.create
      admin.users.store
      admin.users.edit
      admin.users.update
      admin.users.destroy
      admin.users.show
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 2013-06-04
        • 2014-10-08
        • 1970-01-01
        • 2013-08-20
        • 2014-07-08
        相关资源
        最近更新 更多