You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何用whereNull同时校验多个字段为null?

在Laravel中实现批量whereNull的校验方案

你可以通过以下几种方式实现类似->whereNull(['field_x','field_y'])的批量字段null校验:

方法一:循环遍历字段数组

通过循环批量调用whereNull,代码简洁易维护,效果和链式调用多个whereNull完全一致:

$existsRule = Rule::exists('users', 'id');

foreach (['field_x', 'field_y'] as $field) {
    $existsRule->whereNull($field);
}

// 最终将$existsRule加入校验规则数组即可

方法二:使用where闭包构造批量null条件

利用where方法的数组参数形式,直接指定多个字段等于null,底层会自动处理为IS NULL条件:

Rule::exists('users', 'id')
    ->where(function ($query) {
        $query->where([
            'field_x' => null,
            'field_y' => null,
        ]);
    })

补充说明

Laravel的whereNotNull方法原生支持数组参数是因为框架内部做了数组遍历处理,但whereNull目前没有实现这个逻辑,不过以上两种方法都能完美替代链式调用多个whereNull的写法,且扩展性更好——后续要新增字段只需修改数组即可。

内容的提问来源于stack exchange,提问作者MartinTTS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 18:04:54