simfatic/boar

PHP 的表单验证库

v1.0.1 2021-11-05 09:41 UTC

This package is auto-updated.

Last update: 2024-09-05 15:31:02 UTC


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. 

保持验证的粒度有助于可预测的行为并减少歧义。