thinkPHP5.0验证器

本文介绍了一个用于验证HTTP请求中ID参数是否为正整数的ThinkPHP组件。通过自定义验证规则isPositiveInteger并实现相应的错误信息反馈机制,确保了ID的有效性。文章详细展示了如何创建及使用该验证类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入:use think\Validate;
eg:验证参数必须是正整数

  • IDMustBePostiveInt.php

namespace app\api\validate;

use think\Exception;
use think\Validate;

class IDMustBePostiveInt extends BaseValidate
{
    protected $rule = [ 
        'id' => 'require|isPositiveInteger'
    ];
    protected function isPositiveInteger($value, $rule='', $data='', $field=''){
    if(is_numeric($value) && is_int($value + 0) && ($value + 0) > 0)
    {
        return true;
     }else{
        return $field.'必须是正整数';
    }
  }
}
  1. 其中变量$rule格式固定,定义的是验证规则,规则可以自定义
  2. isPositiveInteger是自定义的验证规则,(return $field.'必须是正整数';)是自定义的返回错误信息
  3. 继承的BaseValidate类是封装的验证过程类
  • BaseValidate.php
use think\Exception;
use think\exception\ErrorException;
use think\Request;
use think\Validate;

class BaseValidate extends Validate
{
public function goCheck()
{
//获取http传入的参数
//对这些参数做校验
    $request = Request::instance();
    $params = $request->param();
    $result = $this->check($params);
    echo $result;
    if(!$result){
        echo $this->error;
        throw new Exception($this->error);
        exit(0);
    }else{
        return true;
    }
   }
}

  1. 继承thinkPHP的Validate类
  2. $params是个数组,存储所有客户端传来的参数
  3. 调用自身的check()方法开始验证,check()方法会根据自定义的验证规则进行参数校验
  4. $this->error可以获取错误信息
最后在需要校验的地方只要简单引用一下就好
例如验证整数,在类里输入这句语句即可:(new IDMustBePostiveInt())->goCheck();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值