ThinkPHP数据验证Validate记录

本文介绍了一个基于ThinkPHP框架的数据验证基类及其实例,并展示了如何在控制器中使用该验证器进行数据清洗。

首先基类Vlidate

<?php
/**
 * Created by PhpStorm.
 * User: ChenJulong
 * Date: 2019/7/17
 * Time: 18:53
 */
namespace app\common\lib\validate;

use think\facade\Request;
use think\Validate;

/**数据验证基类
 * Class BaseValidate
 * @package app\common\lib\validate
 */
class BaseValidate extends Validate{
    /**
     * Notes:数据验证入口方法
     * User: ChenJulong
     * Date: 2019/7/17
     * Time: 18:56
     * @param bool $scene
     * @return bool|\think\response
     */
    public function goCheck($scene=false){
        //获取请求参数
        $param = Request::param();
        //是否有场景验证
        if ($scene)$check=$this->scene($scene)->check($param);
        else $check=$this->check($param);
        //验证结果
        if (!$check){
            //抛出异常验证信息
            //Y(10000,$this->getError(),200);
            //Response::create($this->getError(),'json',400);
            header('HTTP/1.1 400 Bad Request');
            exit($this->getError());
        }return $param;
    }
}

 

实现Validate

<?php
/**
 * Created by PhpStorm.
 * User: ChenJulong
 * Date: 2019/7/17
 * Time: 18:56
 */
namespace app\common\lib\validate;

/** 数据验证实例
 * Class CandyValidate
 * @package app\common\lib\validate
 */
class CandyValidate extends BaseValidate
{
    /**
     * 定义验证规则
     * 格式:'字段名'	=>	['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'IsClose'=>'require|in:0,1',
        'MinLock'=>'require|egt:100',
        'Name'=>'require',
        'CoinId'=>'require|number',
        'RewardRule'=>'require',
        'Day'=>'require|number',
        'LevelId'=>'require|number',
        'MinNumber'=>'require|egt:100',
    ];

    /**
     * 定义错误信息
     * 格式:'字段名.规则名'	=>	'错误信息'
     *
     * @var array
     */
    protected $message = [
        'IsClose.require'=>'请选择是否关闭',
        'IsClose.in'=>'请选择是否关闭',
        'MinLock.require'=>'请输入最低的锁仓数量',
        'MinLock.egt'=>'锁仓数量最低为100',
        'CoinId.require'=>'请选择锁仓货币类型',
        'CoinId.number'=>'锁仓货币类型不正确',
        'RewardRule.require'=>'请输入锁仓规则',
        'Day.require'=>'请输入锁仓天数',
        'Day.number'=>'天数为一个数字',
        'LevelId.require'=>'请输入锁仓等级',
        'LevelId.number'=>'锁仓等级为一个数字',
        'MinNumber.egt'=>'锁仓数量最低为100',
        'MinNumber.require'=>'请输入最低的锁仓数量',
        'Name.require'=>'请输入锁仓等级名称'

    ];

    protected $scene=[
        'LockStoreConfigEdit'=>'IsClose,MinLock,CoinId,Day,RewardRule',//锁仓规则配置数据验证
        'LockStoreLevelEdit'=>'Name,MinNumber',//锁仓等级名称配置修改
    ];
}

 

控制器中调用

$parm=(new CandyValidate())->goCheck('LockStoreLevelEdit');//清洗数据

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值