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

Laravel验证:如何让Rule::in()允许缺失/空值?

解决方案

你可以在code字段的验证规则数组中添加nullable规则,同时利用Laravel验证器的默认行为来实现需求:

use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;

$validator = Validator::make(
    data: (array)$parent,
    rules: [
        'code' => ['nullable', Rule::in($allowedCodes)],
    ]
);

if ($validator->fails()) { ... }

规则说明

  • nullable:明确允许字段值为null,此时不会触发后续的Rule::in校验
  • 字段缺失的情况:Laravel验证器默认会跳过不存在的字段的所有规则校验,因此无需额外添加规则即可允许字段缺失
  • 这种方式无需修改$allowedCodes数组,也不用拼接字符串形式的in规则,完全契合你的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:33:23