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
杏林同学录(四)
Oct 09 PHP
PHP入门
Oct 09 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
php显示时间常用方法小结
Jun 05 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
PHP设置Cookie的HTTPONLY属性方法
Feb 09 PHP
自制PHP框架之模型与数据库
May 07 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 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脚本的10个技巧(4)
2006/10/09 PHP
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
又一个小巧的图片预加载类
2007/05/05 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
Python语言异常处理测试过程解析
2020/01/08 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
工艺工程师工作职责
2013/11/23 职场文书
会计专业的自荐信
2013/12/12 职场文书
园林资料员岗位职责
2013/12/30 职场文书
建筑施工安全生产责任书
2014/07/22 职场文书
民事答辩状格式范文
2015/05/21 职场文书
烈士陵园观后感
2015/06/08 职场文书