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

Lumen 5.6自定义验证规则问题:校验真实Null值

实现Lumen 5.6的真实Null值自定义验证规则

我帮你完善这个TrueNull验证规则,刚好能满足你要校验真实Null值的需求——也就是只有当值严格等于null时才通过验证,空字符串""、0、false这些值都会被拦截。

完整的规则代码(App\Rules\TrueNull.php)

<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class TrueNull implements Rule
{
    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        // 严格判断值是否为null,空字符串、0等非null值都会返回false
        return $value === null;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return 'The :attribute must be a true null value.';
    }
}

如何使用这个规则

在你的控制器验证逻辑里,直接实例化这个规则即可:

// 示例1:验证request中的字段可以不存在,但如果存在则必须是真实null
$this->validate($request, [
    'your_field' => [new \App\Rules\TrueNull],
]);

// 示例2:字段必须存在且为真实null,加上required规则
$this->validate($request, [
    'your_field' => ['required', new \App\Rules\TrueNull],
]);

逻辑说明

  • passes方法里用===严格比较,确保只有当值是真正的null时才返回true,完美区分了空字符串""和null的差异,完全匹配你的需求。
  • message方法返回自定义错误提示,其中:attribute会自动替换为验证的字段名,让错误信息更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:56:22