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');
        }

 

 

 

posted @   王越666  阅读(73)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示