Laravel条件子查询与相关模型的最后一个条目

时间:2018-05-25 09:39:08

标签: sql laravel orm eloquent relation

我尝试在hasMany关系的相关模型上构建查询,我想用users查询properties,其中最后一个属性有unit_id, group_id or team_id

我尝试但不起作用

$users = User::with('properties', function($query) use($catId) {
                $query->where('team_id', $catId)
                    ->orWhere('group_id', $catId)
                    ->orWhere('unit_id', $catId);
            })->get();

这一个返回所有记录

另一次尝试

$q = User::with(['properties' =>function($query) use($catId) {

                $query->latest()->where('team_id', $catId)
                    ->orWhere('group_id', $catId)
                    ->orWhere('unit_id', $catId);
            }]);

再次返回所有记录

1 个答案:

答案 0 :(得分:2)

请勿使用with,请使用whereHas

$users = User::whereHas('properties', function($query) use ($catId) {
          $query->where('team_id', $catId)
                ->orWhere('group_id', $catId)
                ->orWhere('unit_id', $catId);
})->get();