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


think php 3种验证方式的更多相关文章
- Web.xml中四种验证方式
源地址:https://blog.csdn.net/imimi_/article/details/78805642 <security-constraint> 的子元素 <http- ...
- WebService的几种验证方式
转 http://www.cnblogs.com/yoshiki1895/archive/2009/06/03/1495440.html WebService的几种验证方式 1.1 WebS ...
- Tomcat学习总结(5)——Tomcat容器管理安全的几种验证方式
当访问服务器中受保护的资源时,容器管理的验证方法可以控制确认用户身份的方式.Tomcat支持四种容器管理的安全防护,它们是: BASIC (基本验证):通过HTTP验证,需要提供base64编码文本的 ...
- SSH两种验证方式原理
本帖转自 http://www.cnblogs.com/hukey/p/6248468.html SSH验证方式有两种,分别为用户密码认证以及密钥认证. 1.用户密码认证方式 说明: (1) 当客户端 ...
- [ SSH 两种验证方式原理 ]
SSH登录方式主要分为两种: 1. 用户名密码验证方式 说明: (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户: (2) 用户会根据服务器发来的公钥对密码进行加密: (3) 加密后的信 ...
- linux下ssh的几种验证方式
ssh的认证方式有很多种,大概可以概括为以下几类: 1.pam认证方式 在配置文件/etc/ssh/sshd_config中对应参数:UsePAM 2.密钥认证方式 配置文件/etc/ssh/sshd ...
- JGit与远程仓库链接使用的两种验证方式(ssh和https)
JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...
- JGit与远程仓库链接使用的两种验证方式(ssh和https)
JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...
- Linux vsftpd服务配置以及三种验证方式以及常见错误解决办法
文件传输协议(FTP): 文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传.下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件 ...
随机推荐
- 从我做起[AutoMapper实现模块化注册自定义扩展MapTo<>()].Net Core 之二
AutoMapper实现模块化注册自定义扩展MapTo<>() 我们都知道AutoMapper是使用的最多的实体模型映射,如果没有AutoMapper做对象映射那么我们需要想一下是怎么写的 ...
- Java-打印杨辉三角
记录下哈 import java.util.Scanner; public class YangHuiTriangle { public static void main(String[] args) ...
- Embedded Python应用小结
转载请注明来源:https://www.cnblogs.com/hookjc/ (1)初始化Python脚本运行环境 Py_Initialize(); (2) 脚本的编译 bytecode = Py_ ...
- Token+Redis实现接口幂等性
一.什么是 幂等性 在编程中,幂等性的特点就是其任意多次执行的效果和一次执行的效果所产生的影响是一样的. 二.Token+Redis的实现思路 1.数据提交前要向服务的申请 token(用户登录时可以 ...
- JSP页面乱码解决
1. tomcat 设置端口处加上 URIEncoding="UTF-8" 2. tomcat 的bin文件夹下的catalina.bat中如下位置加上如下编码:-Dfile.en ...
- 类(静态)变量和类(静态)static方法以及main方法、代码块,final方法的使用,单例设计模式
类的加载:时间 1.创建对象实例(new 一个新对象时) 2.创建子类对象实例,父类也会被加载 3.使用类的静态成员时(静态属性,静态方法) 一.static 静态变量:类变量,静态属性(会被该类的所 ...
- 论文解读(IDEC)《Improved Deep Embedded Clustering with Local Structure Preservation》
Paper Information Title:<Improved Deep Embedded Clustering with Local Structure Preservation>A ...
- MybatisPlus二级缓存
一.序言 本文承接[Mybatis缓存体系探究],提供基于MybatisPlus技术可用于生产环境下的二级缓存解决方案. 1.前置条件 掌握MyBatis二级缓存的原理 有关MyBatis缓存原理内容 ...
- 敲出的第一个python程序
学习python第二天,终于照猫画虎编辑出第一个程序.程序要求如下: 1.输入用户名.密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 源代码如下: username = 'jackson'pas ...
- if循环&数据类型的内置方法(上)
目录 if循环&数据类型的内置方法 for循环 range关键字 for+break for+continue for+else for循环的嵌套使用 数据类型的内置方法 if循环&数 ...