2016-10-04 92 views
3

我将Laravel 5.2应用程序升级到Laravel 5.3。我有很多资源的路线,如: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 

我用的路由()帮助其名字打印所有的路由。问题是,现在Laravel 5.3生成我的路线与此名称:

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

我需要他们得到充分的命名空间。

回答

1

我解决这样说:

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

为什么不将它们包装在一个组中?

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

这仅修改控制器的范围指定前缀。我需要的路由名称是web.products。*而不是产品。* – Alan

+0

啊,我只是注意到你正在做'网络/产品' - 是有原因吗?如果您将其更改为'web.products',我认为这会为您提供您正在寻找的路线。 – Samsquanch

4

你可以给“作为”参数组指令给了所有组的路由前缀。

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']]); 
}); 
+0

谢谢,我相信这是缺少的文档。 – michaeltintiuc