1. 程式人生 > >FuelPHP 系列(四) ------ Validate 驗證

FuelPHP 系列(四) ------ Validate 驗證

com 匹配 bracket between 感嘆號 判斷 alpha count ID

一、可用規則:

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‘);

FuelPHP 系列(四) ------ Validate 驗證