【问题标题】:Laravel 5.3 Resource routes namesLaravel 5.3 资源路由名称
【发布时间】:2017-02-12 23:13:33
【问题描述】:

我将 Laravel 5.2 应用程序升级到 Laravel 5.3。我有很多资源路线,例如:

Route::resource('web/products', 'Web\ProductController', ['except' => ['show']]);
Route::resource('web/promos',   'Web\PromoController',   ['except' => ['show']]);

在 Laravel 5.2 之前为它们生成的路由名称是:

web.products.index
web.products.create
web.products.store
web.products.edit
web.products.update
web.products.edit

我使用 route() 帮助程序按其名称打印所有路线。问题是现在 Laravel 5.3 正在使用以下名称生成我的路线:

products.index
products.create
products.store
products.edit
products.update
products.edit

我需要它们完全命名空间。

【问题讨论】:

    标签: php laravel laravel-5.3


    【解决方案1】:

    为什么不把它们打包成一个组呢?

    Route::group(['namespace' => 'Web'], function() {
        Route::resource('web/products', 'ProductController', ['except' => ['show']]);
        Route::resource('web/promos',   'PromoController',   ['except' => ['show']]);
    });
    

    【讨论】:

    • 这只会修改控制器的范围。我需要路线名称是 web.products.* 而不是 products.*
    • 啊,我刚刚注意到你在做web/products——这有什么原因吗?如果您将其更改为web.products,我认为这将为您提供您正在寻找的路线。
    【解决方案2】:

    我是这样解决的:

    Route::resource('web/products', 'Web\ProductController', ['names' => [
        'create' => 'web.products.create'
    ]]);
    

    【讨论】:

      【解决方案3】:

      您可以在 group 指令中给出“as”参数,以便给所有组路由一个前缀。

      Route::group(['as'=>'web.'], function() {
          Route::resource('web/products', 'Web\ProductController', ['except' => ['show']]);
          Route::resource('web/promos',   'Web\PromoController',   ['except' => ['show']]);
      });
      

      你也可以为url指定前缀

      Route::group(['as'=>'web.','prefix'=>'web'], function() {
          Route::resource('products', 'Web\ProductController', ['except' => ['show']]);
          Route::resource('promos',   'Web\PromoController',   ['except' => ['show']]);
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-22
        • 2018-09-24
        • 1970-01-01
        • 2015-07-20
        • 2015-03-04
        • 1970-01-01
        • 2019-06-30
        • 2020-04-16
        相关资源
        最近更新 更多