2016-08-21 5 views
0

投稿:: with( 'comments.owner') - > get();ネストされたeagerのロード制約

このクエリは、すべての投稿、そのコメントとコメントの所有者を取得します。

しかし、どのようにすべての投稿、その最後の5コメントと各コメントの著者を得ることができます。誰でも助けてくれますか? ID - - コンテンツ コメント - ID - commented_id(USER_ID) - ここで

は、スキーマ 投稿のID - - ユーザーUSER_ID FULL_NAME を感謝

+0

あなたのDBを投稿してくださいスキーマ – jaysingkar

+0

投稿 - id - コンテンツ コメント - id - commented_id(user_id) - user_id ユーザーID - フルネーム – maj

+0

https://softonsofa.com/tweaking-eloquent-relations-how-to-get-n-related-model s-per-parent/ –

答えて

1

はこれを試してみてください:

$posts = Post::with(['comments'=>function($query){ 
       $query->orderBy('created_at','desc')->limit(5); 
      }]) 
      ->with('comments.author') 
      ->get(); 
+0

申し訳ありませんが、これは期待どおりに機能しません。そのすべてのコメントを返す。私はちょうど は、( '6' で ''コメント.'post_id' comments' 'から選択* '7'、posts'' *からのクエリが の下に走っ参照してください最後の5 を選択する必要がある '8' 「16」、「17」、「18」、「19」、「20」、「19」、「19」、 21 '、' 22 '、' 23 '、' 24 '、' 25 '、' 26 ') – maj

+0

2つの選択ステートメント? – jaysingkar

+0

はい、熱心な読み込みは結合を使用しません。それは複数のクエリを生成する – maj

関連する問題