Я могу использовать следующий код, чтобы получать сообщения с их комментариями:
Post::with('comments')->where('status', 'publish');
Теперь, как я могу получить сообщения ТОЛЬКО с последними комментариями к каждому сообщению?
Кроме того, было бы здорово, если бы был способ получить сообщение с первым плюс последним комментарием, например, как Instagram показывает комментарии на главной странице!
попробуйте это, чтобы получить последние 5 комментариев:
Post::with( ['comments' => function($c){
$c->latest()->limit(5)->get() ;
} ])->where('status', 'publish');
Попробуй это:
Post::with(array('comments' => function($query) {
$query->where('status', 'publish')
$query->orderBy('comments', 'DESC');
}))->get();
это статья предлагает в посте поставить:
public function latestComment()
{
return $this->hasOne('Comment')->latest();
}
Затем сделайте:
$posts = Post::with('latestComment')->get();