Laravel 具有相关模型最后条目的条件子查询

Laravel conditional subquery with related model last entry

我尝试在 hasMany 关系的相关模型上构建一个查询,我想用 properties 查询 users 其中最后一个 属性 有 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();

这一条returns全部记录

再试一次

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

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

其中returns又是所有记录

不要使用with,使用whereHas

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