首页 > 解决方案 > 如何获取有关“与”关系和主集合的特定列?

问题描述

我知道我可以这样做:

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'
  }
  } ... ]

标签: phplaraveleloquent

解决方案


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

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'])

推荐阅读