方式一:独立验证

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

think php 3种验证方式的更多相关文章

  1. Web.xml中四种验证方式

    源地址:https://blog.csdn.net/imimi_/article/details/78805642 <security-constraint> 的子元素 <http- ...

  2. WebService的几种验证方式

    转 http://www.cnblogs.com/yoshiki1895/archive/2009/06/03/1495440.html WebService的几种验证方式 1.1      WebS ...

  3. Tomcat学习总结(5)——Tomcat容器管理安全的几种验证方式

    当访问服务器中受保护的资源时,容器管理的验证方法可以控制确认用户身份的方式.Tomcat支持四种容器管理的安全防护,它们是: BASIC (基本验证):通过HTTP验证,需要提供base64编码文本的 ...

  4. SSH两种验证方式原理

    本帖转自 http://www.cnblogs.com/hukey/p/6248468.html SSH验证方式有两种,分别为用户密码认证以及密钥认证. 1.用户密码认证方式 说明: (1) 当客户端 ...

  5. [ SSH 两种验证方式原理 ]

    SSH登录方式主要分为两种: 1. 用户名密码验证方式 说明: (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户: (2) 用户会根据服务器发来的公钥对密码进行加密: (3) 加密后的信 ...

  6. linux下ssh的几种验证方式

    ssh的认证方式有很多种,大概可以概括为以下几类: 1.pam认证方式 在配置文件/etc/ssh/sshd_config中对应参数:UsePAM 2.密钥认证方式 配置文件/etc/ssh/sshd ...

  7. JGit与远程仓库链接使用的两种验证方式(ssh和https)

    JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...

  8. JGit与远程仓库链接使用的两种验证方式(ssh和https)

    JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...

  9. Linux vsftpd服务配置以及三种验证方式以及常见错误解决办法

    文件传输协议(FTP): 文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传.下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件 ...

随机推荐

  1. 「NOI十联测」奥义商店

    「NOI十联测」奥义商店 若lzz想花费最少的钱,那么显然要选择数目较少的颜色. 先考虑暴力的写法. 每次向两边统计,每个物品要求被买的概率可以由上一个物品推出. now=1;//now 被买概率 M ...

  2. tcp 中 FLAGS字段,几个标识:SYN, FIN, ACK, PSH, RST, URG.

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段.它们的含义是: 1.SYN表示建立 ...

  3. 【转】使用Docx.Core创建word表格

    原文地址:https://www.cnblogs.com/qs315/p/13533765.html 使用Docx.Core创建word表格 下载DocxCore Nuget包 当前版本 1.0.7 ...

  4. Servlet Servlet的装载三种情况

    感谢原文作者:DaleyDC 原文链接:https://blog.csdn.net/sinat_32873711/article/details/53170342 Servlet的装载三种情况: 自动 ...

  5. Java线程--Phaser使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11867895.html Java线程--Phaser使用, 代码里头有详细注释: packag ...

  6. KubeSphere单节点(all-in-one)平台搭建记录

    KubeSphere单节点(all-in-one)平台搭建记录 目录 KubeSphere单节点(all-in-one)平台搭建记录 一.主机准备 1.1 主机配置 1.2 环境准备 二.下载kube ...

  7. 分享刚出炉的基于Blazor技术的Web应用开发框架

    这是最近刚刚重构完成的项目,有点迫不及待的分享给大家,为了跟上技术升级把原来基于MVC Razor Page开源项目 RazorPageCleanArchitecture 进行重构, 前端用Blazo ...

  8. 使用grpcui测试gRPC服务

    grpcui类似Swagger UI,可以用来测试gRPC服务,使用起来特别简单. 其原理是通过自动发现gRPC服务协议(当然前提是gRPC服务暴露了Protobuf协议),然后启动一个带界面的Web ...

  9. find+grep+正则表达式

    目录 find+grep+正则表达式 1.find 2.grep 3.正则表达式 find+grep+正则表达式 1.find 根据文件的名称或者属性查找文件. # 自己在 /root/adc目录下长 ...

  10. 正则表达式以及re模块的使用

    内容概要 正则表达式简介 字符组 特殊符号 量词 贪婪匹配与非贪婪匹配 取消转义 正则表达式简介 '''正则表达式是一门语言,如果想在python中使用,需要导入re模块''' # 什么是正则表达式? ...