目录 wudimei-php是一个MIT许可的自由php框架。由杨庆荣开发维护,wudimei.com , QQ290359552

验证

use Validator;
//...

$v = new Validator();
$_POST_DATA = $_POST; //要验证的数据
$rules = [
   'name' => 'required;alpha_num_dash;'
]; //这是对各字段要验证的规则
$messages = []; //这是要输出的消息,默认是使用语言文件中的消息。
$areValid = $v->validate( $_POST_DATA ,$rules, $messages);
var_dump( $areValid );
print_r( $v->errors );

规则

required

要求输入,不能为空。

unique

唯一,不能重复。 unique:users,username 表示在w_users表的username中不能存在有重复的。 unique:users,username,21,id; 除了id=21之外不能有重复。

alpha_num_dash

只可以输入字母、数字、中划线、下划线。

email

email:true;表示要求输入email,false不要求。不写代表不要求。

rangelength

文字长度的区间 rangelength:3,30表示长度在 3-30个字符之间。

equalTo

equalTo:password; 表示当前文本域的值要和文本域名称为'password'的值一致。验证再次输入的密码。

minlength

最小长度 minlength:5; 最少要有五个字符。

maxlength

maxlength:6 最多为6个字符

digits

要求输入数字,没有小数点。例如digits:true;

number

要求输入数字,可以有小数点。

min

最小值。 min:18;表示,值不能小于18。

max

最大值 max:65表示值不能大于65。

range

区间 range:1,12 表示值保能大于等于1,小于等于12。

no_tags

表示不能要html、xml标记。

消息

消息可以采用文本域名称+规则名称作为消息的下标。

<?php
$messages = [
        'login.required'=>'please enter login.',
  ];

也可以只用规则名称。

<?php
$messages = [
      'required' => 'please enter this field.',
    ];
<?php
$messages = [
      'required' => 'please enter this field.',
        'login.required'=>'please enter login.',
        'login.email'=>'must be an email. ',
        'login.unique' => 'username should be unique',
        'login.rangelength' => 'username length 4-30',
        'confirm_password.required' => 'please enter confirm_password',
        'confirm_password.equalTo' => 'confirm_password should be same as password',
        'confirm_password.minlength' => 'please enter at lease 5 chars',
        'confirm_password.maxlength' => 'please enter less than 6 chars',
        'tel.digits' => 'please enter a valid telphone number',
        'score.number' => 'please enter a vlaid score',
        'age.min' => 'age must greater than 18',
        'age.max' => 'age must less than 65',
        'month.range' => 'month should be in 1-12',  
];

给验证传递字段的文本标签

use Validator;
//...

$v = new Validator();
$_POST_DATA = $_POST; //要验证的数据
$rules = [
   'name' => 'required;alpha_num_dash;'
]; //这是对各字段要验证的规则
$messages = []; //这是要输出的消息,默认是使用语言文件中的消息。
$attributes = ['email'=> '电子邮件'];
$areValid = $v->validate( $_POST_DATA ,$rules, $messages ,$attributes);
var_dump( $areValid );
print_r( $v->errors );

$attributes的值为空时,且没有写上Lang::groupAppend('fieldlabels','validator_test')这样的代码,系统值会根据控制器名称寻找对应的语言文件。 例如控制器名称是UserController,系统便会查找resources/lang/{local}/user.phpresources/lang/{local}/users.php中定义的字段名称。 如果没有找到,则会查找/resources/lang/{local}/validation.php文件中名称为attributes中定义的标签。

字段的文本标签

字段名称默认被传给语言。当然你也可以已经写好的字段对应语言关系。

<?php
Lang::groupAppend('fieldlabels','validator_test');

这里是把validator_test.php语言文件的值追加到fieldlabels组中。 看一下validator_test.php的语言文件内容。

<?php
return [
    'login' =>  '用户名',
    'tel' => '电话号码',
    'email' => '电子邮件',
    'confirm_password' => '确认密码',
    'password' => '密码'
];