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 和 XML: 使用expat函数(三)
Oct 09 PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
php array_map()数组函数使用说明
Jul 12 PHP
使用php实现截取指定长度
Aug 06 PHP
php更新修改excel中的内容实例代码
Feb 26 PHP
两种设置php载入页面时编码的方法
Jul 29 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
PHP的Trait机制原理与用法分析
Oct 18 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 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
自己动手做一个SQL解释器
2006/10/09 PHP
php数据库密码的找回的步骤
2011/01/12 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
python 5个顶级异步框架推荐
2020/09/09 Python
长辈证婚人证婚词
2014/01/09 职场文书
创业培训计划书
2014/05/03 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL