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');
//加载自己扩展的验证类 $val->add_callable('Myrules'); //静态加载,只能调用类中的 static 方法 $val->add_callable(new MyRules()); //非静态加载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异