Phalcon框架之———— 2.0升级到3.0 问题Model验证问题解决
Github源码:https://github.com/phalcon/cphalcon/tree/master/phalcon/validation/validator
Phalcon 2.0 Model 字段验证:
public function validation() { $this->validate(new PresenceOf(array( "field" => 'code', "message" => '应用名称不能为空', ))); $this->validate(new Regex(array( "field" => 'code', "message" => '应用名称只能包含字母、数字、 中、下划线', 'pattern' => '/^[-A-Za-z0-9_]+$/', ))); $this->validate(new Model\Validator\Uniqueness(array( 'field' => 'code', 'message' => '应用名称已被使用' ))); $this->validate(new PresenceOf(array( "field" => 'name', "message" => '名称不能为空', ))); $this->validate(new PresenceOf(array( "field" => 'mechanismId', "message" => '请选择归属推理系统', ))); return $this->validationHasFailed() != true; }
Phalcon 3.0 Model 字段验证:
use Phalcon\Validation\Validator\PresenceOf;
use Phalcon\Validation\Validator\Regex as RegexValidator;
use Phalcon\Validation\Validator\Uniqueness;
public function validation() { $validator = new Validation(); //验证值不为null或空字符串 $validator->add( [ 'mobile', 'password' ], new PresenceOf([ "message" => [ 'mobile' => '手机号不能为空', 'password' => '密码不能为空', ], ]) ); //允许验证字段的值是否与正则表达式匹配 $validator->add( [ 'mobile', 'password' ], new RegexValidator([ 'pattern' => [ 'mobile' => "/^(13[0-9]|14[0-9]|17[0-9]|15[0-9]|18[0-9])\d{8}$/", 'password' => "/^[A-Za-z0-9_]+$/", ], 'message' => [ 'mobile' => '手机号只能包含英文、数字和下划线', 'password' => '密码只能包含英文、数字和下划线' ] ]) ); //检查相关表中的字段是否唯一 $validator->add( 'mobile', new Uniqueness([ 'model' => 'User', 'message' => ':field must be unique' ]) ); return $this->validate($validator); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构