问题描述
我有一个自定义查询,可以在其中按城市分组来获得服务,并通过加载那里的评论从服务表中仅选择自定义字段:
$services = City::select('id')
->has('services')
->with([
'services:id,title','services.reviews'
])->get();
在这种情况下,我只需要对每个带有评论自定义字段的服务进行 3条评论。例如,我只需要从评论表中获得描述和费率。我该怎么办?
解决方法
您可以创建一个将孩子限制为三行的关系。然后,您可以指定要以与服务相同的方式显示哪些列。
例如,在Service模型中,添加以下内容:
public function threeReviews() {
return $this->reviews()->take(3);
}
然后以与使用服务相同的方式使用它。
->with(['services:id,title','services.reviews:description,rate'])