我知道我可以做到:
User::with(array('project' => function($query){
$query->select('title');
}))->get()
我可以做到这一点:
User::get(['name', 'title', 'status', 'created_at']);
如何合并它们?这不起作用:
User::with(array('project' => function($query){
$query->select('title');
}))->get(['name', 'title', 'status', 'created_at'])
理想情况下,我的结果形成为:
[{
_id: 'ID',
name: 'NAME',
title: 'TITLE',
status: 'STATUS',
created_at: 'CREATED_AT',
project: {
_id: 'ID',
title: 'PROJECT TITLE'
}
} ... ]
答案 0 :(得分:5)
您必须选择关系的外键和本地键:
User::with(['project' => function($query) {
$query->select('_id', 'title');
}])->get(['name', 'title', 'status', 'created_at', 'project_id'])
在Laravel 5.5及更高版本中,您可以使用以下代码:
User::with('project:_id,title')
->get(['name', 'title', 'status', 'created_at', 'project_id'])