Laravel自定义操作名称和使用资源控制器的路由名称



默认情况下,资源控制器为您提供这些操作和路由名称:

ACTION  ROUTE NAME
index   resource.index
create  resource.create
store   resource.store
show    resource.show
edit    resource.edit
update  resource.update
destroy resource.destroy

并希望将两者(操作和路线名称(重命名为:

ACTION  ROUTE NAME
**browse    resource.browse**
create  resource.create
store   resource.store
show    resource.show
edit    resource.edit
update  resource.update
**delete    resource.delete**

并且仍然使用资源控制器,如下图所示:

Route::resource('resource', 'ResourceController');

而不是像这样的GET路由列表:

Route::get('resource', 'ResourceController@index');
Route::get('resource/create', 'ResourceController@index');
...

以下是Laravel doc建议的一个好的解决方案:

Route::resource('resource', 'ResourceController', ['names' => [
'index' => 'resource.browse',
'delete' => 'resource.delete',
]]);

其余的将具有默认名称。

Laravel文档中的相关部分:https://laravel.com/docs/5.2/controllers#restful-命名资源路由

您也可以为资源控制器编写自定义路由。

// for **browse    resource.browse**
Route::post('resource/browse', 'ResourceController@browse')->name('resource.browse');
//for **delete    resource.delete**
Route::delete('resource/delete', 'ResourceController@delete')->name('resource.delete');

最新更新