【问题标题】:Laravel Resource Routes Naming PrefixLaravel 资源路由命名前缀
【发布时间】:2019-06-30 20:39:10
【问题描述】:

我已经定义了两条资源路线。

Route::resource('p/contacts', 'BaseData\PrivateContactsController');
Route::resource('b/contacts', 'BaseData\ContactController');

我的问题是两个资源组都成为前缀相同的前缀(contacts.showcontacts.edit...)

Laravel docs我找到了这种方式来命名路由

Route::resource('photos', 'PhotoController')->names([
'create' => 'photos.build'
]);

在我看来,这种方式非常复杂,因为我必须为每条路由设置前缀。有没有更好的方法为组的所有路由设置前缀?

【问题讨论】:

    标签: php laravel laravel-5 laravel-routing


    【解决方案1】:
    Route::resource('p/contacts', 'BaseData\PrivateContactsController',["as"=>"private"]);
    Route::resource('b/contacts', 'BaseData\ContactController',["as"=>"normal"]);
    

    这样,url 将保持不变,但名称将有一个前缀,用于第一个资源控制器

    private.contacts.index or private.contacts.edit
    

    对于第二个控制器

        normal.contacts.create or normal.contacts.show
    

    有关更多信息,请查看文档或此github issue

    【讨论】:

      【解决方案2】:

      试试这个:

      Route::group(['prefix'=>'your_prefix'], function(){
          // put your code here
      });
      

      【讨论】:

        猜你喜欢
        • 2015-03-04
        • 1970-01-01
        • 1970-01-01
        • 2016-12-10
        • 2017-08-22
        • 2018-12-18
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        相关资源
        最近更新 更多