thinkPHP5框架自定义验证器实现方法分析


Posted in PHP onJune 11, 2018

本文实例讲述了thinkPHP5框架自定义验证器实现方法。分享给大家供大家参考,具体如下:

普通的验证器手册上已经很详细,我们讲解一下如何自定义一个验证器

首先我们在模块目录下建立validata文件夹

然后在里面建立一个类,取名为IdMustInt.php

代码如下:注意,我的模块名为api,所以命名空间如下

保护属性$rule为官方规定,不能改变,其实验证规则require都是封装好的函数名,所以我们也建立一个方法,方法名填写在验证规则后面即可

namespace app\api\validate;
use think\Validate;
class IdMustInt extends Validate
{
  protected $rule = [
    'id' => 'require|IsInt'
  ];
  protected function IsInt($value,$rule,$data,$field){
  //参数依次为验证数据,验证规则,全部数据(数组),字段名
  //这里我们要判断的验证的数据要求必须为正整型
    if(is_numeric($value) && is_int($value+0) && ($value+0) > 0){
      return true;
    }else{
  //如果不符合我们的条件,返回错误信息,在控制器中可以用getError()方法输出
      return $field.'不是整型';
    }
  }
}

接下来看我们控制器的对应操作

public function getBanner($id)
{
    //需要验证的数据
    $data = [
      'id' => $id,
    ];
  //实例化验证器
    $validate = new IdMustInt();
  //如果验证数据较多,条件也较多,需要批量返回所有错误信息的话,可以在check()前加上$validata->batch()
    $result = $validate->check($data);
    if($result){
      //业务逻辑
    }else{
      dump($validate->getError());
    }
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
1.PHP简介
Oct 09 PHP
PHP中的cookie不用刷新就生效的方法
Feb 04 PHP
php实现的短网址算法分享
Jun 20 PHP
php实现过滤UBB代码的类
Mar 12 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
利用php_imagick实现复古效果的方法
Oct 18 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
php实现的数组转xml案例分析
Sep 28 PHP
PHP如何解决微信文章图片防盗链
Dec 09 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 10 #PHP
PHPMailer ThinkPHP实现自动发送邮件功能
Jun 10 #PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 #PHP
PHP实现二维数组中的查找算法小结
Jun 09 #PHP
PHP实现链表的定义与反转功能示例
Jun 09 #PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 #PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 #PHP
You might like
推荐php模板技术[转]
2007/01/04 PHP
php分页示例分享
2014/04/30 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
PHP count()函数讲解
2019/02/03 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
use jscript with List Proxy Server Information
2007/06/11 Javascript
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
js数组操作常用方法
2014/05/08 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python 文件处理注意事项总结
2017/04/10 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
电影圆明园观后感
2015/06/03 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫