2016-10-04 13 views
3

Laravel 5.2アプリケーションをLaravel 5.3にアップグレードしました。私のようなリソースのルートがたくさんあります。Laravel 5.2まで彼らのために生成さLaravel 5.3リソースルート名

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

ルート名にした:

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'をやっていることに気がついた - それには理由がありますか? '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