すべてのニュースをコメント付きで読み込みたい。現在、すべてのコメントを含むすべてのニュースを取得しています。ただし、各ニュース項目に表示されるコメントは 2 つだけです。
$news = News::with('user')->with('comments.user')->orderBy('created_at', 'desc')->get();
各ニュース項目で 2 つのコメントのみを取得するにはどうすればよいですか?
それが可能かどうかはわかりません。
次のようなことができます。
News::with(array('comments.user' => function($q) { $q->take(2); }));
ただし、セット全体から 2 つのコメントが必要です (生成されたクエリは のようになりますSELECT * FROM users WHERE id IN (...) LIMIT 2
)。
私も同じ問題を抱えていました。私は汚い方法でそれを行いました - News レコードを反復処理し、それらに 2 つのコメントをフェッチし、すべてをキャッシュします。