Laravel - вложенные маршруты без использования дополнительного идентификатора

Я создаю REST API в Laravel, и есть одна вещь, которую я не могу понять. Ситуация следующая; пользователь может входить в систему, просматривать статьи и делать их избранными.

Любимая таблица состоит из article_id и user_id

Запросы оформляются следующим образом:

  • [GET] / article / 24 просмотреть статью 24
  • [GET] / article / 24 / favourite указывает на избранное, если не возвращает 404
  • [POST] / article / 24 / favourite добавить в избранное
  • [DELETE] / article / 24 / избранное удалить из избранного

Вроде бы нормально, но вложенные ресурсы по умолчанию ожидают следующего формата:

/controller/[id]/sub_controller/[sub_id]

Как лучше всего избежать этого требования sub id? Мне не нужен идентификатор избранного, потому что комбинации идентификатора статьи и идентификатора пользователя достаточно, чтобы найти элемент в моей базе данных.

Это мои текущие маршруты для запросов:

Route::resource('articles', 'ArticlesController', 
  array('only' => array('index','store','show','destroy')));

Route::resource('articles.favorite', 'ArticlesFavoriteController', 
  array('only' => array('show','store','destroy')));

В настоящее время я требую, чтобы пользователь API добавил / 0 к URL-адресу, чтобы активировать правильный маршрут, но должен быть способ лучше.


person Henk    schedule 16.07.2013    source источник


Ответы (1)


Я думаю, вам следует подумать об использовании здесь ResourceController Laravel. Возможно, вам стоит использовать RestfullControllers для ваших конкретных нужд.

person Jan P.    schedule 17.07.2013