2015-07-27 3 views
0

Я пытаюсь добавить новый контроллер в существующий проект laravel. Приложение уже имеет некоторые страницы в /users, и я пытаюсь добавить RESTful API, который работает по отдельности. Я хотел бы, чтобы API был доступен по адресу api/users.Laravel маршрут к контроллеру не работает

Я создал контроллер с помощью PHP ремесленника:

php artisan controller:make ApiUsersController 

я добавил следующий мои маршруты:

Route::controller('api/users', 'ApiUsersController'); 

Однако, когда я попал в URL я просто получить «страницу сайта может не найдено ".

Есть что-то, что я пропустил?

+0

check: - Route :: get ('api/users', 'ApiUsersController'); –

+0

'Route :: get ('api/users', 'ApiUsersController @ index');' работает. – diggersworld

ответ

1

Похоже, проблема связана с тем, что вы использовали 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 в пределах той же функции обратного вызова.

+0

Я знаю, что существует метод «Route :: resource()». Как бы я добавил api/'к нему, хотя, как видно из приведенных ниже примеров, просто использовать имя модели и имя контроллера в качестве параметров. – diggersworld

+0

Ах, извините, я полностью пропустил это. Я обновил свой ответ, чтобы отразить это. –

+0

Удивительно, спасибо. :) – diggersworld

Смежные вопросы