首先基类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');//清洗数据