Laravel 5.3 资源路由名称
Laravel 5.3 Resource routes names
我将我的 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
我需要它们完全命名空间。
为什么不将它们打包成一个组?
Route::group(['namespace' => 'Web'], function() {
Route::resource('web/products', 'ProductController', ['except' => ['show']]);
Route::resource('web/promos', 'PromoController', ['except' => ['show']]);
});
我是这样解决的:
Route::resource('web/products', 'Web\ProductController', ['names' => [
'create' => 'web.products.create'
]]);
您可以在组指令中提供 "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']]);
});
我将我的 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
我需要它们完全命名空间。
为什么不将它们打包成一个组?
Route::group(['namespace' => 'Web'], function() {
Route::resource('web/products', 'ProductController', ['except' => ['show']]);
Route::resource('web/promos', 'PromoController', ['except' => ['show']]);
});
我是这样解决的:
Route::resource('web/products', 'Web\ProductController', ['names' => [
'create' => 'web.products.create'
]]);
您可以在组指令中提供 "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']]);
});