验证规则

验证规则的定义有两种方式,验证器内通常使用 rule 属性定义,独立验证,则是通过 rule 方法进行定义。


属性定义

属性定义方式仅限于验证器,通常使用如下方式:

  1. namespace app\index\validate;
  2. use ginkgo\Validate;
  3. class User extends Validate {
  4. protected $rule = array(
  5. 'name' => array(
  6. 'require' => true,
  7. 'max' => 25,
  8. ),
  9. 'age' => array(
  10. 'between' => '1,120',
  11. 'format' => 'number',
  12. ),
  13. 'email' => array(
  14. 'format' => 'email',
  15. ),
  16. );
  17. }

系统内置了一些常用的验证规则,可以满足大部分需求,具体含义请查看 内置规则

一个字段可以使用多个验证规则(如上面的 age 字段定义了 between 和 format 两个规则)。


方法定义

独立验证时(即手动调用验证类进行验证),使用 rule 方法进行定义,如:

  1. $validate = ginkgo\Validate::instance();
  2. $name = array(
  3. 'require' => true,
  4. 'max' => 25,
  5. );
  6. $validate->rule('name', $name);
  7. $rule = array(
  8. 'age' => array(
  9. 'between' => '1,120',
  10. 'format' => 'number',
  11. ),
  12. 'email' => array(
  13. 'format' => 'email',
  14. ),
  15. );
  16. $validate->rule($rule);
  17. $data = array(
  18. 'name' => 'ginkgo',
  19. 'email' => 'ginkgo@qq.com'
  20. );
  21. if (!$validate->verify($data)) {
  22. print_r($validate->getMessage());
  23. }

rule 方法说明

  1. function rule( $rule [, $value = array()] )

参数

  • rule 规则

    支持两种类型

    字符串:规则名

    数组:批量设置规则

  • value 规则值

    rule 为字符串时为必须,当 rule 为数组时自动忽略。