Laravel 模型 - 计算平均评分
Laravel Model - Calculate avg ratings
我有 table "Orders" 存储评分的地方,在里面 table 我与地方有关系。
我需要从每个地方抓取订单评分并计算平均评分。我需要它在模型上,所以我可以抓住它以备后用。
这是方案:
[订单]
--order_id = 10
--place_id = 2
--评分=3
[地点]
--place_id = 2
所以,当我调用:$place->avgRating() 时,它需要 return 例如 4.3。拉取订单信息有效。这是代码:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Place extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
public function orders(){
return $this->hasMany('App\Order');
}
}
你看过documentation中的收集方法了吗?
所以在你的 Place
模型中添加一个方法:
public function avgRating()
{
return $this->orders->avg('rating');
}
调用 $project->avgRating();
应该 return 如您所愿。
我有 table "Orders" 存储评分的地方,在里面 table 我与地方有关系。
我需要从每个地方抓取订单评分并计算平均评分。我需要它在模型上,所以我可以抓住它以备后用。
这是方案:
[订单]
--order_id = 10
--place_id = 2
--评分=3
[地点]
--place_id = 2
所以,当我调用:$place->avgRating() 时,它需要 return 例如 4.3。拉取订单信息有效。这是代码:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Place extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
public function orders(){
return $this->hasMany('App\Order');
}
}
你看过documentation中的收集方法了吗?
所以在你的 Place
模型中添加一个方法:
public function avgRating()
{
return $this->orders->avg('rating');
}
调用 $project->avgRating();
应该 return 如您所愿。