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
相关产品推荐
相关产品推荐

