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 驗證規則:
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 驗證