вложенный контроллер ресурсов laravel 4

В laravel 4 я хотел бы иметь вложенный контроллер.

Я читал документацию, но не нашел объяснения, как это сделать.

Предположим, что в приложении у меня есть несколько статей, и каждая статья имеет свой собственный набор комментариев. Я хотел бы иметь возможность получить все комментарии к конкретной статье, обратившись к такому URL-адресу.

http://myapp.com/articles/5/comments

Я создал commentController, но я не знаю, как правильно получить идентификатор статьи из URL-адреса, поэтому я могу передать его всем своим методам CRUD в своем контроллере.


person Ptitaw    schedule 24.03.2013    source источник


Ответы (2)


в route.php

Route::resource('articles.comments','commentsController');

в контроллере

public function show($articleId, $comment) {}

public function create($articleId) {}
person kr4Y    schedule 25.03.2013

Я не уверен, что вложенные контроллеры ресурсов - это то, что нужно... Вот что я бы сделал.

Route::resource('articles','articlesController');
Route::get('articles/{$id}/comments','articlesController@comments');

Затем в вашем контроллере

public function comments($id) {

}
person bretterer    schedule 25.03.2013
comment
Хотя это сработает, будет предоставлен только один маршрут, что лишает преимущества использования ресурса. Предлагаемый вами способ, которым вам нужно будет вручную добавить все необходимые маршруты GET, POST, PATCH и PUT ..... беспорядочно! - person j5Dev; 06.06.2014