验证规则
验证规则的定义有两种方式,验证器内通常使用 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
为数组时自动忽略。