2017-09-21 16 views
0

は、私はそれはあなたのように、このリターン(外側左)LARAVEL

{ 

comment: "fdsfdsfsdffddsffds", 
user_name: "ahmaf", 
shop_name: "example.com", 
rating: "4", 
created_at: "2017-09-19 02:14:41", 
images: https://example.com/kf/UT8.1.cX3XaXXagOFbX5.jpg 
}, 
-{ 
comment: "fdsfdsfsdffddsffds", 
user_name: "ahmaf", 
shop_name: "example.com", 
rating: "4", 
created_at: "2017-09-19 02:14:41", 
images: https://example.com/kf/UT81WzoX3BXXXagOFbXs.jpg 
}, 
-{ 
comment: "sdfdsfdssfd", 
user_name: "fdsfds", 
shop_name: "example2.myshopify.com", 
rating: "5", 
created_at: "2017-09-19 02:12:25", 
images: null 
} 

のような結果を返しますコメント

return $comments = \DB::table('comments')->select('comments.comment','comments.user_name','comments.shop_name', 
      'comments.rating','comments.created_at','comments_images.images')-> 
     join('comments_images','comments.id','=','comments_images.comment_id','left outer') 
     ->where('comments.product_id', '=', "11644254552")-> 
orderBy(\DB::raw('-`images`'), 'desc')->get(); 

に関連する画像を返すこのクエリをクエリ持っています最初の2行が重複していて、このように返されることを確認してください。

comment: "fdsfdsfsdffddsffds", 
user_name: "ahmaf", 
shop_name: "example.com", 
rating: "4", 
created_at: "2017-09-19 02:14:41", 
images:{ 
0: https://example.com/kf/UT8.1.cX3XaXXagOFbX5.jpg 
1: https://example.com/kf/UT81WzoX3BXXXagOFbXs.jpg 
} 
}, 

-{ 
comment: "sdfdsfdssfd", 
user_name: "fdsfds", 
shop_name: "example2.myshopify.com", 
rating: "5", 
created_at: "2017-09-19 02:12:25", 
images: null 
} 

これは可能ですか?関連するデータごとに新しい行を作成する代わりに、それらを収集するように戻します。


それが働いたと私はみましたが、私はcomments_imagesテーブルから画像をORDERBY使うことができませんでした、それだけであなたは、親/子関係の結果を探しているコメント

$comments = Comment::where('product_id', '=', "11644215052")->with([ 
     'images' => function ($query) 
     { 
      $query->orderBy('images', 'desc'); 
     }, 
    ])->paginate(30); 
+0

'を追加するようにしてください - > GROUPBY( 'comments.id') - >()を取得;' !! – Maraboc

+0

groupByは機能しません。その中にすべての列を追加する必要があります。そうしないとエラーが返され、すべてのレコードが返されません。私はちょうど重複した行をグループ化したい –

答えて

0

からの列で動作します。あなたはフラットな行の結果セットでそれを得ることはありません。子関係を持つララベモデルを使ってみてください。

https://laravel.com/docs/5.5/eloquent-relationships#querying-relations

+0

私はそれをすべて知っていると私はそれを一緒にデータを返すために(熱心な負荷)を使用して行うことができますが、私はジョインを使用する必要があるのでorderByを使用することができなくなります、しかし、私は熱心な負荷なしでこれに対する解決策を見つけることができませんでした –

+0

私はLaravel 5を使用しませんが、注文との関係を設定することができます。 https://stackoverflow.com/questions/18143061/laravel-orderby-on-a-relationship – user3720435

+0

他のテーブルの列に基づいて注文することはできません。私の場合は、comments_imagesテーブルの列を使用して注文することはできません。 –

関連する問題