simfatic / boar
PHP 的表单验证库
v1.0.1
2021-11-05 09:41 UTC
Requires (Dev)
- phpunit/phpunit: ^9.5
README
$v = Boar::create() $v->field("name")->isRequired()->alphabetic()->maxLen(50) $v->fields(["email", "address"])->areRequired()->maxLen(50) $res = $v->validate($post_values) if($res->hasErrors()) { echo json_encode($res->errors); }
自定义错误信息
$v->field("name")->maxLength(10)->withMessage("name should be shorter than {{max_length}}");
消息字符串是一个模板。 {{field}}
被替换为字段的名称。例如,当与字段 address
一起使用时,"{{field}} is required."
变为 "address is required"
。消息模板还可以包含特定验证的值。例如,max_length
用于 MaxLength 验证,min_length
用于 MinLength 验证。
所有验证都应该明确声明
$v->field("name")->maxLength(10)->alphabetic(); $res = $v->validate([]); //No Error.
如果名称是必填字段,应显式调用 isRequired()
$v->field("name")->isRequired()->maxLength(10)->alphabetic(); $res = $v->validate([]); //Error.
同样地
$v->field("weight")->min(100); $res = $v->validate(["weight"=>"not a number"]); //No Error.
最小验证不会验证数据类型。如果值不是数字,它将静默忽略。
$v->field("weight")->isNumber()->min(100); $res = $v->validate(["weight"=>"not a number"]); //Error.
保持验证的粒度有助于可预测的行为并减少歧义。