在Laravel Eloquent中选择具有关系的字段

时间:2018-09-28 12:04:35

标签: laravel laravel-5 eloquent subquery relationship

如何在laravel雄辩的对象中选择字段

User::select('username', 'firstname', 'lastname')->with(['periods' => function($){
   $->select('jobtitle')->orderBy('start_date', 'desc')->limit(1);
}])->paginate(50);

在这种情况下,我的查询期间可能为空

2 个答案:

答案 0 :(得分:3)

您应该使用:

User::select('username', 'firstname', 'lastname')->with(['periods' => function($){
   $->select('jobtitle', 'user_id')->orderBy('start_date', 'desc')->limit(1);
}])->paginate(50);

相反。我添加了user_id,因为这可能是连接用户期间的列。如果您不选择用于“匹配”这些记录的列,那么雄辩的用户就无法为他们附加有效期限

答案 1 :(得分:1)

您可以在laravel 5.5和更高版本中解决以下方法。

User::select('username', 'firstname', 'lastname')->with('periods:jobtitle');
}])->get();