Я пытаюсь добавить новый контроллер в существующий проект laravel. Приложение уже имеет несколько страниц на /users
и я пытаюсь добавить RESTful API, который работает отдельно для этого. Я хотел бы, чтобы API был доступен на api/users
,
Я создал контроллер с помощью PHP ремесленника:
php artisan controller:make ApiUsersController
Я добавил следующее в мои маршруты:
Route::controller('api/users', 'ApiUsersController');
Однако, когда я нажимаю URL, я просто получаю сообщение «Страница не найдена».
Я что-то пропустил?
Похоже, проблема в том, что вы использовали Route::controller
скорее, чем Route::resource
,
Route::resource
сопоставляет маршруты с семью методами RESTful, которые генератор контроллеров создает по умолчанию. Route::controller
сопоставляет их с методами, которые вы добавляете сами, которые имеют метод HTTP как часть их имени, в вашем случае, если у вас был метод с именем getIndex
это будет вызвано по запросу GET /api/users/index
или если у вас был один позвонил postStore
это будет вызвано по запросу POST /api/users/store
,
Чтобы добавить префикс API к маршруту, вы можете использовать следующее:
Route::group(['prefix' => 'api'], function() {
Route::resource('users', 'ControllerName');
});
Вы также можете добавить любые другие контроллеры в API в том же обратном вызове.
Других решений пока нет …