thinkPHP5.0验证器

引入: 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();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值