快速开发指南 - ginkgo


验证规则

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


属性定义

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

namespace app\index\validate;

use ginkgo\Validate;

class User extends Validate {
  protected $rule = array(
    'name'  => array(
      'require' => true,
      'max'     => 25,
    ),
    'age'   => array(
      'between' => '1,120',
      'format'  => 'number',
    ),
    'email' => array(
      'format'  => 'email',
    ),
  );
}

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

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


方法定义

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

$validate = ginkgo\Validate::instance();

$name = array(
  'require' => true,
  'max'     => 25,
);

$validate->rule('name', $name);

$rule = array(
  'age'   => array(
    'between' => '1,120',
    'format'  => 'number',
  ),
  'email' => array(
    'format'  => 'email',
  ),
);

$validate->rule($rule);

$data = array(
  'name'  => 'ginkgo',
  'email' => 'ginkgo@qq.com'
);

if (!$validate->verify($data)) {
  print_r($validate->getMessage());
}

rule() 方法说明

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

参数

  • rule 规则

    支持两种类型: 为字符串时表示规则名,为数组时表示批量设置规则

  • value 规则值

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


更新时间 10-15 14:27
Top