【问题标题】:Eloquent return elements only when last related element is older than 30 days?仅当最后一个相关元素超过 30 天时才返回元素?
【发布时间】:2021-11-17 16:59:38
【问题描述】:

我是编程世界的新手,我使用 laravel。我有Post 模型,每个用户都可以有更多的帖子。对于所有帖子,我都有hasMany 关系,但这与帖子有关,我需要逆逻辑。

我不知道如何才能只获取最后一篇帖子超过 30 天的用户?我需要它们来发送电子邮件通知。

有人可以给我一些意见吗?

【问题讨论】:

    标签: laravel database eloquent eloquent-relationship


    【解决方案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 以比较日期并忽略时间
    • 我认为有问题,因为它总是返回相同的结果,即使我更改日期。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多