我有一个包含大量数据的成员表。我想查看" Alarms"包含会员的姓名,但没有关于该会员的其他信息。
我目前正在使用
Alarm::with('member')->get();
返回与member_id相关的所有警报数据和所有成员数据。
我想要的是指定"成员"数据只返回" name"没有其他成员。
通常可以使用
完成Member::select('name')->get();
但我想知道如何通过急切加载来实现该结果,而无需编辑模型并添加到"隐藏"因为我在其他电话中需要数据。
答案 0 :(得分:0)
Alarm::with(['member' => function ($q) {
$q->select('id', 'name');
}])->get();
需要考虑的一些事项:
select
不会像上面那样为belongsToMany
(多对多)关系工作,因为它已被窃听。primary key
/ foreign key
(取决于关系)才能让Eloquent将相关模型与其各自的父母匹配