см. https://laravel.com/docs/5.5/controllers#resource-controllers
Дополнительные контроллеры ресурсов
Если вам нужно добавить дополнительные маршруты к контроллеру ресурсов помимо набора маршрутов ресурсов по умолчанию, вы должны определить эти маршруты перед вызовомRoute::resource;
в противном случае маршруты, определенные методом resource
, могут непреднамеренно иметь приоритет над вашими дополнительными маршрутами:
Route::get('photos/popular', 'PhotoController@method');
Route::resource('photos', 'PhotoController');
Так что в моем случае выше просто измените это:
$router->resources([
'programs' => ProgramController::class,
'programs/categories' => ProgramCategoryController::class,
]);
на это:
$router->resources([
'programs/categories' => ProgramCategoryController::class,
'programs' => ProgramController::class,
]);
, и теперь он работает хорошо, также обе операции crud
.
это не оптимальное решение, но оно работает для меня.