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();
我尝试在 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();