Laravel 资源路由命名前缀

Mar*_*kus 3 php laravel laravel-routing laravel-5

我定义了两条资源路由。

Route::resource('p/contacts', 'BaseData\PrivateContactsController');
Route::resource('b/contacts', 'BaseData\ContactController');
Run Code Online (Sandbox Code Playgroud)

我的问题是两个资源组的前缀相同(contacts.show,contacts.edit...)

在Laravel 文档中,我找到了这种命名路线的方法

Route::resource('photos', 'PhotoController')->names([
'create' => 'photos.build'
]);
Run Code Online (Sandbox Code Playgroud)

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

A. *_*bak 5

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

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

private.contacts.index or private.contacts.edit
Run Code Online (Sandbox Code Playgroud)

对于第二个控制器

    normal.contacts.create or normal.contacts.show
Run Code Online (Sandbox Code Playgroud)

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