Php 带有前缀、中间件和命名路由的管理路由组

Php 带有前缀、中间件和命名路由的管理路由组,php,laravel,routes,laravel-6,Php,Laravel,Routes,Laravel 6,我在名为VehicleController的控制器中有一些命名路由: vehicle.index vehicle.show 然后我有一个管理部分,在那里我定义了一个带有前缀和中间件的路由组。在本节中,我有一个资源控制器名AdminVehicleController,用于通过以下路径处理车辆的CRUD任务(不确定这是否是最佳做法): vehicle.index vehicle.create vehicle.store ... 但是,这些命名的路由是冲突的。我的路线web.php目前看起来像这样

我在名为
VehicleController
的控制器中有一些命名路由:

vehicle.index
vehicle.show
然后我有一个管理部分,在那里我定义了一个带有前缀和中间件的路由组。在本节中,我有一个资源控制器名
AdminVehicleController
,用于通过以下路径处理
车辆的CRUD任务(不确定这是否是最佳做法):

vehicle.index
vehicle.create
vehicle.store
...
但是,这些命名的路由是冲突的。我的路线
web.php
目前看起来像这样:

Route::get('vehicles','VehicleController@index')->名称('vehicle.index');
路径::get('vehicle/{vehicle}','VehicleController@show')->名称('vehicle.show');
路由::组(['prefix'=>'admin','middleware'=>'is.admin'],函数(){
路由::获取('/','AdminDashboardController@index');
路线::资源(“车辆”、“AdminVehicleController”);
});
如果我将
'name'=>'admin'
添加到
Route::group()
数组中,则路由名称将是
adminvehicle.index
而不是
admin.vehicle.index


在路由中组合所有这些参数的正确方法是什么?

提供一个
名称
数组作为第三个参数
$options
数组的一部分,每个键都是资源控制器方法(索引、存储、编辑等),值是您想要给路由的名称

    Route::resource('vehicle', 'AdminVehicleController', [
        'names' => [
            'index' => 'admin.vehicle.index',
            // etc...
        ]
    ]);

作为第三个参数
$options
数组的一部分,提供一个
names
数组,每个键都是资源控制器方法(索引、存储、编辑等),值是您想要给路由的名称

    Route::resource('vehicle', 'AdminVehicleController', [
        'names' => [
            'index' => 'admin.vehicle.index',
            // etc...
        ]
    ]);

尝试将
用作管理员组的
参数

Route::group(['prefix' => 'admin', 'middleware' => 'is.admin', 'as'=> 'admin.'], function () {
    Route::get('/', 'AdminDashboardController@index')->name('dashboard');
    Route::resource('vehicle', 'AdminVehicleController');
});

参考

尝试使用
作为管理组的参数

Route::group(['prefix' => 'admin', 'middleware' => 'is.admin', 'as'=> 'admin.'], function () {
    Route::get('/', 'AdminDashboardController@index')->name('dashboard');
    Route::resource('vehicle', 'AdminVehicleController');
});

参考

您可以使用
作为
键,
'as'=>'admin.
,注意
管理
末尾的
。我试过了,但是对于
admin
(仪表盘URL)命名的路由将是
admin.
-这不是一个大问题,但很烦人。你也可以将它命名为
dashboard
,因此它将是
admin.dashboard
,这样会更干净。你可以使用
as
键,
'as'=>'admin'。
,注意
管理
末尾的
。我试过了,但是对于
admin
(仪表板URL)命名的路由将是
admin.
-这不是一个大问题,但很烦人。您也可以将其命名为
dashboard
,因此它将是
admin.dashboard
,这样会更干净。