仅当最后一个相关元素超过 30 天时才返回元素?
Posted
技术标签:
【中文标题】仅当最后一个相关元素超过 30 天时才返回元素?【英文标题】:Eloquent return elements only when last related element is older than 30 days? 【发布时间】:2021-11-17 16:59:38 【问题描述】:我是编程世界的新手,我使用 laravel。我有Post
模型,每个用户都可以有更多的帖子。对于所有帖子,我都有hasMany
关系,但这与帖子有关,我需要逆逻辑。
我不知道如何才能只获取最后一篇帖子超过 30 天的用户?我需要它们来发送电子邮件通知。
有人可以给我一些意见吗?
【问题讨论】:
【参考方案1】:https://laravel.com/docs/8.x/eloquent-relationships#querying-relationship-existence
所以应该是这样的:
User::whereHas('posts', function ($query)
return $query->where('created_at', '<=', now()->subDays(30);
)->get()
【讨论】:
您也可以将where
更改为whereDate
以比较日期并忽略时间
我认为有问题,因为它总是返回相同的结果,即使我更改日期。以上是关于仅当最后一个相关元素超过 30 天时才返回元素?的主要内容,如果未能解决你的问题,请参考以下文章