Laravel资源路由命名前缀

时间:2019-02-06 19:39:03

标签: php laravel laravel-5 laravel-routing

我已经定义了两个资源路由。

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

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

2 个答案:

答案 0 :(得分:1)

Route::resource('p/contacts', 'BaseData\PrivateContactsController',["as"=>"private"]);
Route::resource('b/contacts', 'BaseData\ContactController',["as"=>"normal"]);

这样,第一个资源控制器的网址将保持不变,但名称将带有前缀

private.contacts.index or private.contacts.edit

和第二个控制器

    normal.contacts.create or normal.contacts.show

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

答案 1 :(得分:0)

尝试

Route::group(['prefix'=>'your_prefix'], function(){

在这里输入您的代码

});