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 相关文章推荐
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
一个简单实现多条件查询的例子
Oct 09 PHP
使用adodb lite解决问题
Dec 31 PHP
PHP array_push 数组函数
Dec 26 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
php对象和数组相互转换的方法
May 12 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
PHP的PDO错误与错误处理
Jan 27 PHP
PHP attributes()函数讲解
Feb 03 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 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
php5.3 注意事项说明
2013/07/01 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Python实现转换图片背景颜色代码
2020/04/30 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
python爬取微博评论的实例讲解
2021/01/15 Python
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
个人自我评价和职业目标
2014/01/24 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
《海上日出》教学反思
2016/02/23 职场文书