方式一:独立验证

//        验证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. [ACM]Link-Cut Tree实现动态树初探

    动态树问题是指的一类问题,而不是具体指的某一种数据结构.它主要维护一个包含若干有根树的森林,实现对森林的修改和查询等. 实现动态树的数据结构据说主要有4种,Link-Cut Tree是其中的一种.Li ...

  2. 2019年1月9日 ES6 学习心得

    ES6为我们创建对象提供了新的语法糖,这就是Class语法.如果你对ES5中面向对象的方式比较熟悉的话,Class掌握起来也是非常迅速的,因为除了写法的不同,它并不会增加新的难以理解的知识点.我们先利 ...

  3. JVM学习十一 - (复习)性能调优

    在高性能硬件上部署程序,目前主要有两种方式: 通过 64 位 JDK 来使用大内存: 使用若干个 32 位虚拟机建立逻辑集群来利用硬件资源. 使用 64 位 JDK 管理大内存 堆内存变大后,虽然垃圾 ...

  4. ASP.NET Core 6框架揭秘实例演示[01]: 编程初体验

    作为<ASP.NET Core 3框架揭秘>的升级版,<ASP.NET Core 6框架揭秘>提供了很多新的章节,同时对现有的内容进行大量的修改.虽然本书旨在对ASP.NET ...

  5. Solution -「SPOJ-VCIRCLES」Area of Circles

    \(\mathcal{Description}\)   Link.   求平面上 \(n\) 个圆的并的面积.   \(n\le50\),可能被圆覆盖的横纵坐标区域在 \([-10^4,10^4]\) ...

  6. Vue2.0源码学习(3) - 组件的创建和patch过程

    组件化 组件化是vue的另一个核心思想,所谓的组件化就,就是说把页面拆分成多个组件(component),每个组件依赖的css.js.图片等资源放在一起开发和维护.组件是资源独立的,在内部系统中是可以 ...

  7. MyBatis封装JDBC具体实现

    关于xml等解析的工具基本均包含在org.apache.ibatis.builder包中,有包名可知基本使用建造者模式.这个包的主要功能两个: 1.解析XML配置文件和映射文件,xml子包中: 2.解 ...

  8. 从零开始,开发一个 Web Office 套件(5):Mouse hover over text

    <从零开始, 开发一个 Web Office 套件>系列博客目录 这是一个系列博客, 最终目的是要做一个基于HTML Canvas 的, 类似于微软 Office 的 Web Office ...

  9. c++基础的记录(随笔记录一些基础的东西)

    1.父类的析构函数为什么要加上virtual关键字. 比如说,父类A,子类B.在A* a = new B()的语句的时候,如果父类析构函数没有virtual,我们在delete指针a的时候,会走父类的 ...

  10. 习惯用excel却满足不了数据分析的需求怎么办?本文给您方法

    Excel 可以说是如今最常用的做分析统计的工具了,简单易用且功能强大,但是excel难以满足一些高端的数据分析需求,主要存在的问题体现在数据共享.数据权限.数据量等方面. 那如果有一款工具既不用你花 ...