Laravel - 多个急切加载关系的多个查询功能

时间:2017-08-20 22:40:35

标签: php laravel

我想知道是否有多个闭包加载两个hasOne关系的解决方案。有一个关系(personaldata)我只需要一些列,第二个关系(userfile)有一个where子句。 如果我从个人数据中删除select或从userfile中删除where子句,它可以工作,否则有两个闭包会使其中一个具有空值。

 $user = Users::with(['personaldata' => function($a) {
                    $a->select('first_name', 'title_name', 'last_name', 'street_address', 'city', 'state', 'country_code', 'zip_code', 'telephone_data', 'skype', 'per_street_address', 'per_city', 'per_state', 'per_country_code', 'per_zip_code');
                },
                'userfile' => function($b) {
                    $b->where('type', '1');
                }
                ])
                ->where('user_id', Auth::id())
                ->get();

1 个答案:

答案 0 :(得分:1)

像这样更改你的代码:

$user = Users::with(['personaldata' => function($query) {
            $query->select('first_name', 'title_name', 'last_name', 'street_address', 'city', 'state', 'country_code', 'zip_code', 'telephone_data', 'skype', 'per_street_address', 'per_city', 'per_state', 'per_country_code', 'per_zip_code');
        }])
        ->with(['userfile' => function($query) {
            $query->where('type', '1');
        }])
        ->where('user_id', Auth::id())
        ->get();