首页 > 解决方案 > PHP:当输入字段与其他规则不匹配时,如何使 Rakit 验证使用默认值?

问题描述

我正在尝试使用 Rakit/Validation 库设置验证。

$validator = new \Rakit\Validation\Validator;
$in = ["port" => -1];
$validation = $validator->validate($in, [
    'port' => 'default:80|integer|between:0,65535',
]);
$errors = $validation->errors();
print_r($errors->firstOfAll());

问题是,我没有将port变量重置为默认值 (80),而是收到一条错误消息“端口必须介于 0 和 65535 之间”。

如果传递的值未能通过检查,是否可以使规则使用默认值?或者我必须编写自定义规则?

标签: phpvalidation

解决方案


根据 rakits 文档:

如果该属性为空或不存在,它只是为您的属性设置默认值。

因此,在设置值时它不起作用,因此在值无效时不起作用。


推荐阅读