如何获取有关“ with”关系和主集合的特定列?

Rai*_*l24 1 php laravel eloquent

我知道我可以这样做:

User::with(array('project' => function($query){
   $query->select('title');
}))->get()
Run Code Online (Sandbox Code Playgroud)

我可以做到这一点:

User::get(['name', 'title', 'status', 'created_at']);
Run Code Online (Sandbox Code Playgroud)

如何合并它们?这不起作用:

User::with(array('project' => function($query){
    $query->select('title');
}))->get(['name', 'title', 'status', 'created_at'])
Run Code Online (Sandbox Code Playgroud)

理想情况下,我的结果形成为:

[{
  _id: 'ID',
  name: 'NAME',
  title: 'TITLE',
  status: 'STATUS',
  created_at: 'CREATED_AT',
  project: {
      _id: 'ID',
      title: 'PROJECT TITLE'
  }
  } ... ]
Run Code Online (Sandbox Code Playgroud)

Jon*_*eir 5

您必须选择关系的外键和本地键:

User::with(['project' => function($query) {
    $query->select('_id', 'title');
}])->get(['name', 'title', 'status', 'created_at', 'project_id'])
Run Code Online (Sandbox Code Playgroud)

在Laravel 5.5+中,您可以使用以下命令:

User::with('project:_id,title')
    ->get(['name', 'title', 'status', 'created_at', 'project_id'])
Run Code Online (Sandbox Code Playgroud)