use*_*472 2 php mysql laravel eloquent laravel-5
我的目标是获得对可用课程的平均评价。但是当我试图获得课程的平均评价时,它给了我一个错误:"message": "Call to a member function addEagerConstraints() on float"
我的课程模型
public function rating(){
return $this->hasMany(Rating::class);
}
public function averageRating(){
return round($this->rating()->avg('ratings'),1);
}
Run Code Online (Sandbox Code Playgroud)
评级模型
public function user(){
return $this->belongsTo(User::class);
}
public function course(){
return $this->belongsTo(Course::class);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器
$result = Course::with('averageRating')->get();
Run Code Online (Sandbox Code Playgroud)
我希望它能提供课程详细信息以及每门课程的平均评分,但它抛出了错误。谁能帮帮我吗??谢谢
AverageRating 方法不是关系,您不能像关系那样使用它。如果您想要平均评级,请将averageRating 设置为附加属性。
课程.php:
protected $appends = [
'average-rating'
];
function getAverageRatingAttribute(){
return round($this->rating()->avg('ratings'),1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5651 次 |
| 最近记录: |