首页 > 解决方案 > 如何检查列是否为空或已满?

问题描述

我有这个查询:

 $posts = Post::query()
                 ->where('active',true)
                 ->where('expire_date','>', now())
                 ->latest()
                 ->get();

expire_date列是nullable,我在查询中需要的是获取所有帖子,其中活动帖子和检查 expire_date为 null 获取所有帖子,但如果expire_date设置了日期,请检查日期是否过期!

如何判断该列是否已设置检查过期日期,如果为 null 则获取它们!

标签: phplaravel

解决方案


orWhere参数组上使用

$posts = Post::query()
    ->where('active', true)
    ->where(
        function ($query) {
            $query->whereNull('expire_date')
                ->orWhere('expire_date', '>', now());
        }
    )
    ->latest()
    ->get();

推荐阅读