2017-06-16 6 views
0

私は自分のデータベースからすべての製品を取得しようとしており、製品名ではなく評価平均評価で注文しています。コントローラーでどうすればいいですか?平均でクエリを実行して注文する。

Tables- 製品:ID、名前、価格、 レビュー:ID、レビュー、評価は、これは、イムは、私のクエリブレードに示す方法である

をPRODUCT_ID。

<p>{{$product->reviews->avg('ratings')}}/ 5</p> 

電流コントローラ:

$products =Product::orderBy('name'); 

答えて

0
Product::with('reviews', function ($query) { 
    $query->select(DB::raw('AVG(ratings) as ratings_average')) 
})->groupBy('id') 
    ->orderBy('ratings_average', 'DESC') 
    ->get(); 

このクエリを試してみて、それがあなたを取得する場所参照してください。

+1

構文エラーが発生します。失敗した構文が削除されると、mb_strpos()エラーが発生します。 groupBy( '​​id') - > groupBy( '​​AVG(ratings)as ratings_average') - >( 'reviews'、function($ query){ $ query-> - > orderBy( '​​ratings_average'、 'DESC') - > get(); }); – detinu20

関連する問題