Laravel 急切加载具有限制和自定义字段的子关系
Posted
技术标签:
【中文标题】Laravel 急切加载具有限制和自定义字段的子关系【英文标题】:Laravel eager loading sub relations with limit and custom fields 【发布时间】:2020-12-26 16:15:54 【问题描述】:我有自定义查询,通过对城市进行分组来获取服务,并通过加载评论从服务表中仅选择自定义字段:
$services = City::select('id')
->has('services')
->with([
'services:id,title',
'services.reviews'
])->get();
在这种情况下,我只需要对每个带有评论自定义字段的服务进行 3 条评论。例如,我只需要评论表中的描述和率。我该怎么做?
【问题讨论】:
***.com/a/56010673/4575350 这能回答你的问题吗? Limiting the result of nested relationship in Laravel 【参考方案1】:您可以创建一个将子级限制为三行的关系。然后,您将能够以与服务相同的方式指定要显示的列。
例如,在服务模型中,添加如下内容:
public function threeReviews()
return $this->reviews()->take(3);
然后像使用服务一样使用它。
->with(['services:id,title','services.reviews:description,rate'])
【讨论】:
以上是关于Laravel 急切加载具有限制和自定义字段的子关系的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 约束急切加载 - 如果关系列应用限制!= 1