php - Laravel 急切加载具有限制和自定义字段的子关系
问题描述
我有自定义查询,通过对城市进行分组来获取服务,并通过加载评论从服务表中仅选择自定义字段:
$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'])
推荐阅读
- c# - 使用 LINQ 效率的 Foreach
- typo3 - 仅在多站点安装的一个站点中使用 TYPO3 核心挂钩
- php - Cakephp 4 - 身份验证插件如何获取当前用户名?
- mongodb - 有没有办法使用模式在同一时间间隔从 mongoDb 中删除字段?
- reactjs - Typescript 模块扩充不起作用:“PaletteColorOptions”类型上不存在属性“main”
- oculusquest - 使用 scrcpy 投射 Oculus quest 2
- javascript - NgxTranslate 不适用于 HTTP 拦截器
- string - 如何在javascript中替换字符串
- arrays - VS Code JSON 设置数组变量
- c++ - 如何使用静态删除器创建 unique_ptr