think php 3种验证方式
方式一:独立验证
// 验证1、独立验证 //验证的规则 $rule = [ 'name' => 'require|max:25', 'username' => 'require', 'password' => 'require', 'email'=>'require' ]; // 验证的错误信息 $msg = [ 'name.require' => '用户名不可以为空', 'name.max' => '用户名最多不能超过25个字符', 'username.require' => '用户昵称不可以为空', 'password.require' => '密码不可以为空', 'email.require' => '邮箱不可以为空', ]; $validate = new Validate($rule,$msg); $result= $validate->check($data); if(!$result){ $this->error($validate->getError(),'goods/goods/create'); }
方式二:控制器验证
//验证的规则 $rule = [ 'name' => 'require|max:25', 'username' => 'require', 'password' => 'require', 'email'=>'require' ]; // 验证的错误信息 $msg = [ 'name.require' => '用户名不可以为空', 'name.max' => '用户名最多不能超过25个字符', 'username.require' => '用户昵称不可以为空', 'password.require' => '密码不可以为空', 'email.require' => '邮箱不可以为空', ]; //控制器验证 $result = $this->validate( $data,$rule); if(true !== $result){ // 验证失败 输出错误信息 $this->error($result,'/goods/goods/create'); }
方式三:验证器验证
<?php // goods 为模块名 namespace app\goods\validate; use think\Validate;
//Goods 为新创建的(Goods.php) class Goods extends Validate { protected $rule = [ 'name|姓名' => 'require|max:25', 'username|用户名' => 'require', 'password|密码' => 'require', 'email|邮箱' => 'require', 'img|头像' => 'require', 'age|年纪' => 'require', 'sex|性别' => 'require', 'account|账号' => 'require', 'confirmPasswrd|确认密码' => 'require', 'contrast|人脸对比' => 'require', 'branch|部门' => 'require', ]; protected $msg = [ 'name.require' => '姓名不可以为空', 'name.max' => '用户名最多不能超过25个字符', 'username.require' => '用户昵称不可以为空', 'password.require' => '密码不可以为空', 'email.require' => '邮箱不可以为空', 'img.require' => '用户头像不可以为空', 'age.require' => '年纪不可以为空', 'sex.require' => '性别不可以为空', 'comment.require' => '个人简介不可以为空', 'account.require' => '账号不可以为空', 'confirmPasswrd.require' => '确认密码不可以为空', 'contrast.require' => '人脸对比不可以为空', 'branch.require' => '部门不可以为空', ]; //验证的场景 protected $scene = [ 'user'=>['account','password','confirmPassword','contrast','branch'], 'order' => ['username', 'img','sex','age','comment'], 'administrators'=>['name','username','password','email'] ]; }
控制器书写:
//验证器验证 $validate = Loader::validate('Goods'); if(!$validate->scene('administrators')->check($data)){ $this->error($validate->getError(),'/goods/goods/create'); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现