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 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
中篇:安装及配置PHP
Dec 13 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
PHP运行模式的深入理解
Jun 03 PHP
php数组转成json格式的方法
Mar 09 PHP
php单例模式实现方法分析
Mar 14 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
PHP代码覆盖率统计详解
Jul 22 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
pw的一个放后门的方法分析
2007/10/08 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
Python编码爬坑指南(必看)
2016/06/10 Python
安装Python的教程-Windows
2017/07/22 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
python drf各类组件的用法和作用
2021/01/12 Python
护士自我评价范文
2014/01/25 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
活动总结范文
2014/08/30 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
无故旷工检讨书
2015/08/15 职场文书
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技