一、可用规则:

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 验证规则:

FLAG DESCRIPTION
alpha 字母
uppercase 只允许大写字母
lowercase 只允许小写字母
specials 允许特殊字符
numeric 数字
spaces 空格
newlines 换行符
tabs TAB键
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());    //非静态加载

 

相关文章:

  • 2021-12-30
  • 2021-08-17
  • 2021-12-30
  • 2021-05-06
  • 2021-11-12
  • 2021-09-02
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-17
  • 2021-10-22
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
  • 2022-01-24
  • 2021-11-15
相关资源
相似解决方案