Вы можете написать свой собственный класс, который расширяет Illuminate\Routing\Route
, и реализовать свой метод resources
следующим образом:
namespace App\Extends;
class Route extends Illuminate\Routing\Route {
public function resources($routes, array $excepts) {
foreach ($routes as $key => $value){
$this->resource($key, $value)->except($excepts);
}
}
}
После того, как вам нужно будет связать свой класс с вашим поставщиком услуг следующим образом:
public function register()
{
$this->app->bind('Illuminate\Routing\Route', 'App\\Extends\\Route');
}
и звоните resources
в сети. php вот так:
Route::resources([
'campaigns' => 'CampaignController',
'users' => 'UserController',
'models' => 'ModelController',
'trims' => 'TrimController'
], ['show']);
[EDIT 1]
С laravel .com / docs / 5.8 / controllers # resource-controllers
Вы можете зарегистрировать несколько контроллеров ресурсов одновременно, передав массив для метода ресурсов:
Route::resources([
'photos' => 'PhotoController',
'posts' => 'PostController'
]);
Но я не знаю, можно ли так назвать ->except(['show'])
Route::resources([])->except(['show'])