2017-06-16 62 views
0

我想從我的數據庫中獲得所有產品,並將它們評爲平均評級,而不是產品名稱。我將如何在我的控制器中進行此操作?運行查詢並對平均值進行排序。

表 - 產品:編號,名稱,價格, 評論:身份證,評論,評分,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()錯誤。 $ products = Product :: with('reviews',function($ query){ $ query-> select(DB :: raw('AVG(ratings)as ratings_average')) - > groupBy('id') (''ratings_average','DESC') - > get(); }); – detinu20