Группа маршрутов администратора с префиксом, промежуточным программным обеспечением и именованными маршрутами - PullRequest
0 голосов
/ 05 октября 2019

У меня есть несколько именованных маршрутов в контроллере с именем VehicleController:

vehicle.index
vehicle.show

А затем у меня есть раздел администратора, где я определил группу маршрутов с префиксом и промежуточным программным обеспечением. В этом разделе у меня есть имя контроллера ресурса AdminVehicleController для обработки задач CRUD для Vehicle (не уверен, что это лучший метод) со следующими маршрутами:

vehicle.index
vehicle.create
vehicle.store
...

Однако эти именованные маршруты конфликтуют,Мои маршруты web.php сейчас выглядят так:

Route::get('vehicles', 'VehicleController@index')->name('vehicle.index');
Route::get('vehicle/{vehicle}', 'VehicleController@show')->name('vehicle.show');

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

Если я добавлю 'name' => 'admin' в массив Route::group(), имена маршрутов будут adminvehicle.index, а не admin.vehicle.index.

Как правильно объединить все эти параметры в маршруте?

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Попробуйте использовать параметр as для вашей группы администраторов

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

Ссылка Ссылка

1 голос
/ 05 октября 2019

Предоставить массив names как часть массива третьего параметра $options, где каждый ключ является методом контроллера ресурсов (индекс, хранилище, редактирование и т. Д.), А значение - именем, которое вы хотите присвоитьмаршрут.

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