php - Laravel:从模型中加载特定列,其中还包括急切加载的列
问题描述
有没有办法从模态中仅加载特定列,其中还包括急切加载的列我想要这样的东西
UserModel::select('userid', 'locationid', 'username', 'firstname', 'lastname', 'subRoleName.*')
->with('subRoleName')
->get();
但我收到了这个错误Unknown column 'subRoleName' in 'field list'
解决方案
是的,您可以只急切地加载关系中的特定列。从文档:
您可能并不总是需要您正在检索的关系中的每一列。因此,Eloquent 允许您指定要检索的关系的哪些列:
$books = App\Book::with('author:id,name')->get();
使用此功能时,您应该始终在要检索的列列表中包含 id 列和任何相关的外键列。
在你的情况下,它会是这样的:
UserModel::select('userid', 'locationid', 'username', 'firstname', 'lastname')
->with('subRoleName:id,column2,column3')
->get();
但正如文档所说,要小心始终包含 id 和相关的外键,否则它将无法正确加载关系。
推荐阅读
- javascript - 为什么该功能不会在点击时发出警报?
- shopware - 由于连接被拒绝而无法安装应用程序?
- python - 使用多个字段过滤模型
- reactjs - 如何使用循环声明多个变量 useRef?那可能吗
- python - 给定一个包含 N 个元素的数组。任务是检查数组中的元素是否首先严格增加然后严格减少
- django - 使用上下文变量与 Django 中的 forloop.revcounter 进行比较
- android - 当清单中有`android:supportsRtl =“false”`时,如何在运行时更改ConstraintLayout的布局方向?
- groovy - 从目录中合并N个文件并存储在groovy中的一个文件中
- acrobat - \pdfmark(Acrobat Distiller)的官方文档中的错误
- vue.js - 如果我真的不需要 3d 动画,我可以使用 translate(2d) 而不是默认的 translate3d 来刷卡吗?