如何检查模型是不是有偶数条相关记录?
Posted
技术标签:
【中文标题】如何检查模型是不是有偶数条相关记录?【英文标题】:How to check if model has even number of relationed records?如何检查模型是否有偶数条相关记录? 【发布时间】:2022-01-03 01:04:23 【问题描述】:我有具有hasMany
关系的用户模型,我需要编写一个查询并只获取那些具有偶数关联记录的用户。
是否有可能以某种方式将whereHas
与 %2 条件一起使用?
还是怎么做?
【问题讨论】:
【参考方案1】:您可以使用 withCount 和 havingRaw 来执行此操作:
$usersWithEvenRelatedModel= User::withCount('relatedModels as relatedCount')
->havingRaw('relatedCount %2 = 0')->get();
【讨论】:
【参考方案2】:您可以通过一些分组/拥有和原始查询来做到这一点:
$userWithEvenRelations = User::whereHas('related', function ($q)
$q->groupBy('user_id')->havingRaw('MOD(COUNT(user_id), 2) = 0');
);
【讨论】:
以上是关于如何检查模型是不是有偶数条相关记录?的主要内容,如果未能解决你的问题,请参考以下文章
如何实现EXCEL自动判定单元格是奇数还是偶数,并且自动填充颜色?