Neo*_*Neo 1 php laravel eloquent laravel-5.5
我需要从雄辩的对象内的关系中获取一个字段。
我正在使用数据表来传递雄辩的对象以供查看。
我有一个名为“办公室”的模型和一个名为“区域”的模型
办公室 ID 名称区域 -> 所属区域
区域 ID 名称
我需要得到这样的东西:Offices.id,Offices.name,Regions.name
我已尝试以下方法,但失败了,如何在 get 方法中获取区域名称?
$ReportData = Offices::with('region')->get(['id', 'name', 'region.name']);
return datatables()->eloquent($ReportData)
Run Code Online (Sandbox Code Playgroud)
Eloquent 关系不使用联接,因此您无法在 Offices 查询中选择它们。
$ReportData = Offices::with('region')->get(['id', 'name']);
Run Code Online (Sandbox Code Playgroud)
将执行单独的查询来预先加载所有区域,同时允许您将每个项目的相关区域作为属性访问:
$ReportData[0]->region->name
Run Code Online (Sandbox Code Playgroud)
如果您愿意,您可以将其展平,使用地图,或者使用带有连接的查询,如 Tim 建议的那样。
您可以使用以下闭包来限制从数据库中选择的区域数据:
$ReportData = Offices::with(['region' => function($q) {
$q->select('name');
}])->get(['id', 'name']);
Run Code Online (Sandbox Code Playgroud)
但是,在大多数情况下,我会认为这是过度优化,除非该区域在其他列中有大量数据。
| 归档时间: |
|
| 查看次数: |
6241 次 |
| 最近记录: |