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

Laravel验证array规则允许空字符串拒null,是Bug还是预期行为?

Laravel array验证规则:空字符串通过、null失败是Bug还是预期行为?

当使用Laravel的array验证规则时,会出现两种不同的验证结果:

  1. 字段值为空字符串时,验证通过:
$validated = validator(
    [
        "data" => ""
    ],
    [
        "data" => "array"
    ]
)->validate();
  1. 字段值为null时,验证失败(符合多数开发者预期):
$validated = validator(
    [
        "data" => null
    ],
    [
        "data" => "array"
    ]
)->validate();

这是预期行为,和Laravel验证器的底层处理逻辑直接相关:

  • array验证规则的核心判定逻辑中,会将空字符串视为「空的合法输入」,因此会通过验证;
  • 而null会被明确判定为非数组类型,所以验证失败。

如果需要严格要求字段必须是实际的数组(同时拦截空字符串、null以及空数组),可以结合filled规则一起使用:

$validated = validator(
    [
        "data" => ""
    ],
    [
        "data" => "array|filled"
    ]
)->validate();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 16:14:57