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 相关文章推荐
关于Intype一些小问题的解决办法
Mar 28 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
PHP 超级全局变量相关总结
Jun 30 PHP
浅谈php常用的7大框架的优缺点
Jul 20 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
python检测是文件还是目录的方法
2015/07/03 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python实现数字的格式化输出
2020/08/01 Python
Python多线程的退出控制实现
2020/08/10 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
比利时香水网上商店:NOTINO
2018/03/28 全球购物
主要负责人任命书
2014/06/06 职场文书
体育运动口号
2014/06/09 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
python简单验证码识别的实现过程
2021/06/20 Python
Python Django项目和应用的创建详解
2021/11/27 Python