我正在为一个使用Laravel 8框架的客户端编写一个研讨会机械师目录,他希望有一个功能来审查研讨会,并选择与客户端合作的多个机械师。每个研讨会都有多个审查,每个审查可以有相同或不同的机械师在研讨会上工作。
请帮助我弄清楚如何:
1.获取链接到每个机械师的所有评论,像这样$mechanic-〉reviews();
1.查找所有车间的顶级机械师。
请让我知道如何使这项工作。
非常感谢。
下面是我到目前为止所做的关系,我不能弄清楚上面的几点。
研讨会表名称、电子邮件、电话、地址
机械表名称、电子邮件、电话、地址、车间标识
reviews表名称、reviews、comment、workshop_id、status(active、pending、rejected)
mechanic_review表(用于将多个mechanics附加到每个审阅)mechanic_id,review_id
Workshop model
public function reviews() {
return $this->hasMany('App\Models\review');
}
public function mechanics() {
return $this->hasMany('App\Models\Mechanic');
}
Mechanic model
public function workshop() {
return $this->belongsTo('App\Models\Workshop');
}
Review model
public function workshop() {
return $this->belongsTo('App\Models\Workshop');
}
2条答案
按热度按时间z4iuyo4d1#
1.要获取链接到每个机制的所有评论,可以在使用belongsToMany关系的Mechanic模型上定义一个reviews()方法。然后,您可以使用WITH访问单个研讨会的所有机制沿着评论。
1.要获得高评级的机械师,您需要在评论表中添加一个属性,该属性应该是整数类型,以便您可以获得每个机械师的评级数量。然后,您可以通过从评论表中获得最高评级的车间的机械师列表来获得单个或多个机械师,您可以将其限制为1到10或您选择的任何数字。$mechanics = Mechanic::withCount('reviews')-〉orderByDesc('ratings')-〉take(10)-〉get();
6jjcrrmo2#
您可以使用透视表- mechanic_review表在mechanic模型中定义关系以返回mechanic评论。
现在您可以使用$mechanic-〉mechReviews访问技工评论。