【问题标题】:Select fields in Laravel Eloquent with relation使用关系选择 Laravel Eloquent 中的字段
【发布时间】:2019-03-04 10:16:01
【问题描述】:

我如何在 laravel eloquent 对象中选择字段我的意思

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

在这个查询中,我得到的句点可能是空的

【问题讨论】:

    标签: laravel laravel-5 eloquent subquery relationship


    【解决方案1】:

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

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

    【讨论】:

    • 我试过了,但使用 with paginate 并没有带来任何结果
    • 你可以试试 whereHas 方法。
    【解决方案2】:

    你应该使用:

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

    相反。我添加了user_id,因为这可能是与用户连接句点的列。如果您不选择用于“匹配”这些记录的列,Eloquent 无法为用户附加有效期间

    【讨论】:

    • 谢谢!那是我忘了包括关系ID
    猜你喜欢
    • 2013-04-03
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2022-10-05
    • 2013-10-16
    • 2020-09-23
    相关资源
    最近更新 更多