我正在尝试按某些属性对某些产品进行排序。例如。价格不是问题,但评级是。
每个产品可以有很多订单,每个订单都有反馈,包括评级。
在产品型号上使用此功能获得评级
$feedBacks = Order::where([
'product_id' => $this->id
])->has('feedBack')->get()->load('feedBack')->lists('feedBack');
if ($feedBacks->count() == 0)
$rating = 0;
else
$rating = floor($feedBacks->sum('rating') / $feedBacks->count());
但是我需要这个函数来进行数据库查询。我还没有找到解决方案,也许你可以帮助我。
更新
我认为结构不太好。 型号产品有很多订单, 所以一个订单属于一个产品。 反馈有一个订单, 所以一个订单属于一个反馈。
一切都指向订单,所以我可以获得所有订单的产品所有订单反馈。
所以我的解决方案是说订单有一个反馈,反馈属于一个订单。使用这种直接格式,应该可以得到结果。