Laravel 资源路由命名前缀
Laravel Resource Routes Naming Prefix
我已经定义了两条资源路线。
Route::resource('p/contacts', 'BaseData\PrivateContactsController');
Route::resource('b/contacts', 'BaseData\ContactController');
我的问题是两个资源组都变成了前缀相同的前缀(contacts.show
, contacts.edit
...)
在Laravel docs中我找到了这种命名路由的方法
Route::resource('photos', 'PhotoController')->names([
'create' => 'photos.build'
]);
在我看来,这种方式非常复杂,因为我必须为每条路由设置前缀。有没有更好的办法给组内所有路由设置前缀?
Route::resource('p/contacts', 'BaseData\PrivateContactsController',["as"=>"private"]);
Route::resource('b/contacts', 'BaseData\ContactController',["as"=>"normal"]);
这样 url 将保持不变,但名称将有一个前缀,用于第一个资源控制器
private.contacts.index or private.contacts.edit
第二个控制器
normal.contacts.create or normal.contacts.show
有关详细信息,请查看文档或此 github issue
试试这个:
Route::group(['prefix'=>'your_prefix'], function(){
// put your code here
});
我已经定义了两条资源路线。
Route::resource('p/contacts', 'BaseData\PrivateContactsController');
Route::resource('b/contacts', 'BaseData\ContactController');
我的问题是两个资源组都变成了前缀相同的前缀(contacts.show
, contacts.edit
...)
在Laravel docs中我找到了这种命名路由的方法
Route::resource('photos', 'PhotoController')->names([
'create' => 'photos.build'
]);
在我看来,这种方式非常复杂,因为我必须为每条路由设置前缀。有没有更好的办法给组内所有路由设置前缀?
Route::resource('p/contacts', 'BaseData\PrivateContactsController',["as"=>"private"]);
Route::resource('b/contacts', 'BaseData\ContactController',["as"=>"normal"]);
这样 url 将保持不变,但名称将有一个前缀,用于第一个资源控制器
private.contacts.index or private.contacts.edit
第二个控制器
normal.contacts.create or normal.contacts.show
有关详细信息,请查看文档或此 github issue
试试这个:
Route::group(['prefix'=>'your_prefix'], function(){
// put your code here
});