Как я могу получить сообщения с последним комментарием от Laravel Eloqunt?

Я могу использовать следующий код, чтобы получать сообщения с их комментариями:

Post::with('comments')->where('status', 'publish');

Теперь, как я могу получить сообщения ТОЛЬКО с последними комментариями к каждому сообщению?

Кроме того, было бы здорово, если бы был способ получить сообщение с первым плюс последним комментарием, например, как Instagram показывает комментарии на главной странице!

Раздел комментариев в Instagram

2

Решение

попробуйте это, чтобы получить последние 5 комментариев:

 Post::with( ['comments' => function($c){
$c->latest()->limit(5)->get() ;
} ])->where('status', 'publish');
2

Другие решения

Попробуй это:

  Post::with(array('comments' => function($query) {
$query->where('status', 'publish')
$query->orderBy('comments', 'DESC');

}))->get();
1

это статья предлагает в посте поставить:

public function latestComment()
{
return $this->hasOne('Comment')->latest();
}

Затем сделайте:

$posts = Post::with('latestComment')->get();
1
По вопросам рекламы [email protected]