ThinkPHP5自定义验证方法

浏览:15739 发布日期:2016/08/03 分类:ThinkPHP5专区 关键字: ThinkPHP5 验证器 验证规则 自定义验证方法
在TP5中定义$rule(验证规则)有两种方式方式一:
$rule = [
    // 不可以在此处定义空的验证 如 'name' => '',会导致出现result未定义错误
    'name'  => 'require|max:25',
    'age'   => 'number|between:1,120',
];
方式二:
$rule = [
    'name'  => ['require','max'=>25],
    'age'   => ['number','between'=>'1,120'],
];
如果方式一自定义验证规则的话,就可以这样写$rule = [
    'name'  => 'require|max:25|checkName:',
    'age'   => 'number|between:1,120',
];

protected function checkNmae($value)
{
    $value 是name值,可以在此处进行验证,如正则验证
}
如果是方式二的话,写法如下$rule = [
    'name'  => ['require','max'=>25,'checkName'=>'$rule参数'],
    'age'   => ['number','between'=>'1,120'],
    'email' => ['require', 'checkUserEmail'=>'qq.com'],
];

protected function checkName($value, $rule)
{
    $vaule 是name值,$rule为上面的$rule参数
}

protected function checkUserEmail($value,$rule)
{
    $res = preg_match('/^\w+([-+.]\w+)*@'.$rule.'$/', $value);
    if (!$res) {
        return '邮箱只能是'.$rule.'域名';
    } else {
        return true;
    }
}
最佳答案
评论( 相关
后面还有条评论,点击查看>>