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 相关文章推荐
php中文本数据翻页(留言本翻页)
Oct 09 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
Jan 18 PHP
php empty() 检查一个变量是否为空
Nov 10 PHP
PHP中Session引起的脚本阻塞问题解决办法
Apr 08 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
一个简单的PHP验证码实现代码
May 10 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
May 20 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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输出Excel文件类
2010/02/08 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
玩转方法:call和apply
2014/05/08 Javascript
js使用递归解析xml
2014/12/12 Javascript
使用js画图之饼图
2015/01/12 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
jquery实现用户登陆界面(示例讲解)
2017/09/06 jQuery
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
python妹子图简单爬虫实例
2015/07/07 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python range实例用法分享
2020/02/06 Python
python实现简单的购物程序代码实例
2020/03/03 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
服务之星获奖感言
2014/01/21 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
Python实现老照片修复之上色小技巧
2021/10/16 Python
mysql主从复制的实现步骤
2021/10/24 MySQL