Laravel 选择::with上的某些属性

Laravel 选择::with上的某些属性,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,我有一个包含大量数据的成员表。我想查看包含该成员姓名的报警列表,但不查看该成员的其他信息 我目前正在使用 Alarm::with('member')->get(); 返回所有报警数据和与成员id关联的所有成员数据 我想要的是将成员数据指定为仅返回名称,而不从成员返回其他内容 这通常可以通过以下方式完成: Member::select('name')->get(); 但是我想知道如何通过快速加载实现这个结果,而不必编辑模型并添加到隐藏中,因为我需要其他调用中的数据 Alarm::w

我有一个包含大量数据的成员表。我想查看包含该成员姓名的报警列表,但不查看该成员的其他信息

我目前正在使用

Alarm::with('member')->get();
返回所有报警数据和与成员id关联的所有成员数据

我想要的是将成员数据指定为仅返回名称,而不从成员返回其他内容

这通常可以通过以下方式完成:

Member::select('name')->get();
但是我想知道如何通过快速加载实现这个结果,而不必编辑模型并添加到隐藏中,因为我需要其他调用中的数据

Alarm::with(['member' => function ($q) {
  $q->select('id', 'name');
}])->get();
需要考虑的几件事:

select对上述多对多关系不起作用,因为它被窃听了。 您需要根据关系选择主键/外键,以便让雄辩的相关模型与其各自的父级匹配 如果您想通过某种JSON api输出数据,我建议改用transformers,例如