FuelPHP 系列(四) ------ Validate 验证

一、可用规则:

1、required  不能为 null, false or empty string.;

2、required_with  关联某个字段,关联字段有值则该字段必须有值;

3、match_value  两个参数:param1,要匹配的字符;param2,是否严格(true则全等,===);

4、match_pattern  匹配 preg;

5、match_field  匹配 field,比如再次输入密码确认(全等===);

6、match_collection  两个参数:param1,要匹配的array;param2,是否严格;

7、min_length  最小长度;

8、max_length  最大长度;

9、exact_length  长度是否是指定长度;

10、valid_date  两个参数:param1,时间 formate;param2,是否严格(默认为 true);

11、valid_email  单个邮箱验证;

12、valid_emails  多个邮箱验证,参数为分隔符(默认为 commas);

13、valid_url  URL 验证;

14、valid_ip  IP 验证,参数为 'ipv4' or 'ipv6'

15、numeric_min  数字最小值(不是数字的看做 0);

16、numeric_max  数字最大值(不是数字的看做 0);

17、numeric_between  两个参数:min,max;

18、valid_string  验证 string,参数为 array();

string 验证规则:

FLAGDESCRIPTION
alpha字母
uppercase只允许大写字母
lowercase只允许小写字母
specials允许特殊字符
numeric数字
spaces空格
newlines换行符
tabsTAB键
dots
commas逗号
punctuation允许点、逗号、感叹号、问号、冒号和半冒号
dashes允许中横线、下划线
singlequotes单引号
doublequotes双引号
quotes允许单引号、双引号
forwardslashes斜杠
backwardslashes反斜杠
slashes允许斜杠、反斜杠
brackets括号
braces大括号
utf8向正则表达式添加UTF8修饰符

二、可扩展验证方法,方法名以 '_validation_' 开头,例如:

  // 防止重复添加
    public static function _validation_unique($val, $options)
    {
        list($table, $field) = explode('.', $options);

        $result = DB::select(DB::expr("LOWER (\"$field\")"))
        ->where($field, '=', Str::lower($val))
        ->from($table)->execute();

        return ! ($result->count() > 0);
    }

    // 判断是否为大写字母
    public function _validation_is_upper($val)
    {
        return $val === strtoupper($val);
    }

*获取当前验证 object,验证 field

//获取当前验证 object
$active = Validation::active();
//获取当前验证字段
$field = Validation::active_field();
$field = $active::actice_field(); 
//当前 field 的 label
$label = $active::active_field()->get_attribute('label');
//当前验证设置错误信息
Validation::active()->set_message('unique', 'The field :label must be unique, but :value has already been used');

三、验证方法

$val = Validation::forge();

$val->add_field('name', '名字','required|unique');
//或者
$val->add('name', '名字')->add_rule('required')->add_rule('unique');

$val->set_message('required', 'You have to fill in your :label');

//验证
$val->run();

//获取错误信息
$val->error();
$val->error_message()
//获取验证过的信息
$val->validated('username');
//加载自己扩展的验证类
$val->add_callable('Myrules');    //静态加载,只能调用类中的 static 方法
$val->add_callable(new MyRules());    //非静态加载

 

转载于:https://www.cnblogs.com/rendd/p/9200635.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值