我尝试在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);
}]);
再次返回所有记录
答案 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();