Как выбрать конкретный метод из класса в Route::resource?

#laravel

Вопрос:

Я создаю свое первое приложение laravel. И у меня есть вопрос, который я больше нигде не смог найти..

У меня есть этот блок кода :

 Route::prefix('/api')->group(function () {
        Route::resource('/buildings', BuildingController::class);
})
 

Кто-нибудь знает, как выбрать конкретный метод в ресурсе BuildingController.
в маршруте::get я использую:

 Route::get("/test", [Controller::class, "exampleMethod"])
 

Но когда я использую это в Route::resource, он возвращает «Преобразование массива в строку».

Есть какие-нибудь решения?

Заранее спасибо

Ответ №1:

Да, есть решение, вам не нужно добавлять метод, который вы хотите использовать, потому что laravel очень умный. Например:

Если у вас есть точка ресурса ../api/здания/1/отредактируйте маршрут::ресурс знает, что вы хотите отредактировать здание с идентификатором 1

Так что вам нужно только:

 Route::prefix('/api')->group(function () {
        Route::resource('/buildings', BuildingController::class);
})
 

и в контроллере ur вам нужно создать метод «показать», и этот метод будет вызван, когда вы перейдете в ../api/buildings/1

вы можете получить методы по умолчанию, создав контроллер с помощью artisan:

 $ php artisan make:controller NameOfUrController
 

Примеры : https://github.com/artesaos/laravel-docs/blob/master/controllers.md