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传输协议的主机,要想完成文件 ...
随机推荐
- Java流程控制03:顺序结构
顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构.从上到下 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处 ...
- UIKit绘图演练
一般使用UIKit给我们提供的绘图来绘制一些文字,图片这些东西. UIKit给我们提供画图的方法底层也是分为四步.所以也必须在drawRect方法当中去写. 1.如何画文字? ...
- NSPredicate类,指定过滤器的条件---董鑫
/* 比较和逻辑运算符 就像前面的例子中使用了==操作符,NSPredicate还支持>, >=, <, <=, !=, <>,还支持AND, OR, NOT(或写 ...
- 【AGC035D】Add and Remove(脑洞 DP 分治)
题目链接 大意 给出\(N\)个数的序列,每次操作可以选择连续的三个数,将中间的那个数抽出,将另外两个数的数值加上中间那个数的数值. 一直执行以上操作直到只剩最后两个数,求最后两个数的所有可能的和的最 ...
- 晋升挂了!leader说不是我技术不行
大家好,我是对白. 今天给大家分享一位朋友在互联网大厂晋升失败的故事,不是每一位校招生第一年都可以稳稳晋升的,这不仅取决于你的业务收益,还取决于你是否会包装自己的项目,以下为原文. 晋升 去年秋季,我 ...
- node 解决存储xss风险报告
1. 安装 xss模块 npm install xss 2.在 Node.js 中使用 const xss = require("xss"); // 在项目的接口里面添加 let ...
- Go语言程序调试
1. Go语言二进制程序分析 在分析一些使用GOlang语言进行编译的恶意程序时,由于程序在被打包成二进制程序时会打包诸多引用的库,并且作者对二进制程序进行了去符号化,导致在动态或是静态分析时函 ...
- ajax的发展
ajax(Asynchronous Javascript and XML)异步javascrip和XMl. ajax只是一种web交互方法.在客户端(浏览器)和服务区段之间传输少量的信息.从而为用户提 ...
- 使用docker部署canal
文章目录 mysql开启binlog mysql创建canal用户 启动canal容器 配置canal 启动canal容器 查看docker容器日志 canal-client 验证 关于canal m ...
- Dubbo基础一之实战初体验
本以为写这个小作文没什么难度的,可是好像并不是.前段时间重心放在驾考科目二,就想着小作文科二考过了再写也不是事,因为都实战过了.今天想着写却发现脑袋里啥都想不起来了,得翻项目和笔记回忆一下.所以还是那 ...