2013-06-06 2 views
0

Я хочу загрузить все мои новости с комментариями. Прямо сейчас, я получаю все новости со всеми комментариями. Тем не менее, я хочу, чтобы только 2 комментария показывались каждому новостному элементу.Предельно загруженные комментарии

$news = News::with('user')->with('comments.user')->orderBy('created_at', 'desc')->get();

Как я могу получить только 2 комментарии с каждой новости?

ответ

2

Я не уверен, что это возможно.

Вы можете сделать что-то вроде этого:

News::with(array('comments.user' => function($q) { $q->take(2); })); 

Но это займет два комментария от всего набора (genereated запрос будет выглядеть SELECT * FROM users WHERE id IN (...) LIMIT 2).

У меня была та же проблема. Я сделал это грязным способом - перебираю записи Новостей, получаю им два комментария и кеширую все это.

+0

Используя этот метод, он будет захватывать только 2 комментария для всей страницы: -PI думаю, мне нужно будет посчитать комментарии и выбрать только самые последние два. –

+0

Да, возможно, это единственный способ. – radmen

+0

@radmen can вы коротко покажете мне, как вы делали это грязно? – antoniputra

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

  • Нет связанных вопросов^_^