讲师中心 微信公众号
AI工具推荐 视频效率加速

Yii2.0.55表单验证规则大全【数据安全】

冬伟大大_7937

冬伟大大_7937

发布时间:2026-08-09 20:29:26

|

937人浏览过

|

来源于php中文网

原创

Yii2.0.55中rules()配置必须精准:1. 必填用required+skipOnEmpty兜底;2. type类验证器需注意integerOnly、strict等参数;3. unique/exist依赖数据库索引;4. file/image校验含真实尺寸检测;5. 自定义验证须显式注册。

yii2.0.55表单验证规则大全【数据安全】

确保用户提交的数据符合业务逻辑与安全边界,避免脏数据入库或越权操作,必须在Yii2.0.55中精确配置rules()方法里的每一条验证规则——漏写required可能让空字符串直接写入数据库,错配skipOnEmpty会导致null值绕过整数校验,不设when条件会让密码强度检查在重置场景下误触发。

必填与空值控制

字段是否为空不能只靠前端拦截,后端必须用required+skipOnEmpty组合兜底。

第一步:声明必填项,如[['username', 'email'], 'required'],这会拒绝null、''、[]三类空值。

第二步:对允许为空但非空时需校验的字段(如手机号),加skipOnEmpty => true,否则当用户没填该字段时,后续的phone格式校验仍会执行并报错。

第三步:若字段值为"0"或false也应视为有效输入(比如开关状态),则必须显式设置strict => false,【否则'0'会被当成空值跳过验证】。

格式与类型校验

type类验证器(如integer、email)默认会尝试类型转换,不是单纯正则匹配。

['age', 'integer'] → 接受"25"、25,但拒绝"25.5"、"twenty-five"。

['email', 'email'] → 仅做基础RFC 5322格式检查,不查MX记录,也不发验证邮件。

['salary', 'number'] → 允许浮点,但['salary', 'integer', 'integerOnly' => true]才强制整数,【漏写integerOnly会导致123.45通过整数校验】。

长度、范围与枚举值

方法一:字符串长度用string规则,支持min/max或length数组两种写法。

['title', 'string', 'min' => 1, 'max' => 100] → 最短1字符,最长100字符。

['level', 'in', 'range' => [1, 2, 3]] → 只接受1、2、3三个整数值,注意PHP松散比较:"1" == 1 默认成立。

方法二:数值范围用compare,operator支持>=、!=、===等,比in更灵活。

Yii Framework 2.0.51
Yii Framework 2.0.51

Yii Framework 2.0.51 官方 Basic 应用模板,适合旧项目兼容、升级验证和开发测试。

下载

['score', 'compare', 'compareValue' => 0, 'operator' => '>='] → 分数不能为负。

唯一性与存在性验证

unique用于防止重复注册,exist用于校验关联数据是否存在。

['email', 'unique', 'targetClass' => User::class, 'filter' => ['status' => User::STATUS_ACTIVE]] → 只在激活用户中查重。

['category_id', 'exist', 'targetClass' => Category::class, 'targetAttribute' => 'id'] → 确保外键真实存在。

注意:这两个验证器都依赖数据库查询,【必须确保targetClass对应表有索引,否则高并发下会拖慢响应】。

文件与图片上传校验

file规则管通用文件,image是file的子类,自带宽高检测。

['avatar', 'image', 'extensions' => ['png', 'jpg'], 'minWidth' => 200, 'maxHeight' => 600] → 不仅验扩展名,还读取图片头信息判断真实尺寸。

['log_file', 'file', 'extensions' => ['txt', 'log'], 'maxSize' => 5120000] → 单位是字节,5120000 = 5MB。

这一步操作起来很简单,直接把文件拖进去就行。

自定义验证逻辑

内联验证适合一次性逻辑,如两次密码比对;独立验证类适合复用场景,如身份证号校验。

内联写法:['password_repeat', function ($model, $attribute) { if ($model->password !== $model->password_repeat) $model->addError($attribute, '密码不一致'); }]。

独立类写法:创建IDCardValidator extends Validator,重写validateAttribute(),类名必须以Validator结尾。

无论用哪种,都必须在rules()里显式注册,否则框架根本不会调用。

热门AI工具

更多
LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
ThinkPHP表单验证与数据安全处理实战
ThinkPHP表单验证与数据安全处理实战

本专题聚焦 ThinkPHP 在表单处理中的验证与安全机制,系统讲解验证器使用、自定义规则、场景验证以及错误提示处理。内容涵盖 XSS 防护、SQL 注入防御、数据过滤与输入校验等关键安全措施。通过实际案例,帮助开发者构建安全可靠的数据处理流程。

201

2026.03.30

PHP Yii框架专题
PHP Yii框架专题

本专题专注于PHP主流框架Yii的应用,系统讲解MVC架构、路由机制、数据库操作、表单处理、安全验证与RESTful API 开发等核心内容。通过电商网站、后台管理系统与内容管理平台等实战项目,帮助学员快速掌握Yii框架的开发技巧与实战经验。

2870

2025.09.04

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

0

2026.09.30

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

0

2026.09.30

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

0

2026.09.30

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

220

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

120

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Yii Framework 2.0 API 官方文档
Yii Framework 2.0 API 官方文档

共0课时 | 0人学习

Yii2.0框架开发实战视频教程
Yii2.0框架开发实战视频教程

共22课时 | 9.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn