【发布时间】:2022-01-03 01:04:23
【问题描述】:
我有具有hasMany 关系的用户模型,我需要编写一个查询并只获取那些具有偶数关联记录的用户。
是否有可能以某种方式将whereHas 与 %2 条件一起使用?
还是怎么做?
【问题讨论】:
标签: php laravel laravel-8 query-builder laravel-query-builder
我有具有hasMany 关系的用户模型,我需要编写一个查询并只获取那些具有偶数关联记录的用户。
是否有可能以某种方式将whereHas 与 %2 条件一起使用?
还是怎么做?
【问题讨论】:
标签: php laravel laravel-8 query-builder laravel-query-builder
您可以使用 withCount 和 havingRaw 来执行此操作:
$usersWithEvenRelatedModel= User::withCount('relatedModels as relatedCount')
->havingRaw('relatedCount %2 = 0')->get();
【讨论】:
您可以通过一些分组/拥有和原始查询来做到这一点:
$userWithEvenRelations = User::whereHas('related', function ($q) {
$q->groupBy('user_id')->havingRaw('MOD(COUNT(user_id), 2) = 0');
});
【讨论】: