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

Php 使用资源控制器的LAVEL自定义操作名称和路由名称?,php,laravel,routes,Php,Laravel,Routes,默认情况下,资源控制器为您提供这些操作和路由名称: ACTION ROUTE NAME index resource.index create resource.create store resource.store show resource.show edit resource.edit update resource.update destroy resource.destroy 并希望将它们(操作和路由名称)重命名为: 并且仍然使用资源控制器,如下所示: Ro

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

ACTION  ROUTE NAME
index   resource.index
create  resource.create
store   resource.store
show    resource.show
edit    resource.edit
update  resource.update
destroy resource.destroy
并希望将它们(操作和路由名称)重命名为:

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

Route::resource('resource', 'ResourceController');
Route::get('resource', 'ResourceController@index');
Route::get('resource/create', 'ResourceController@index');
...
而不是像这样的GET路线列表:

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

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

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


以下是Laravel doc提出的一个很好的解决方案:

Route::resource('resource', 'ResourceController', ['names' => [
    'index' => 'resource.browse',
    'delete' => 'resource.delete',
]]);
其余的将使用默认名称


Laravel文档中的相关部分:

创建您自己的扩展资源注册器,您可以定义您认为我需要改变默认配置的方式。我希望有这样一个路由:route::resource('resource','ResourceController');并且在控制器中有浏览和删除的方法。我认为艾哈迈德的解决方案正是如此。太好了:)