> 得益于全局自定义异常的设计,验证器的使用可以变得更加灵活。
* * * * *
### 验证器基类
`goCheck` 方法,对客户端传递的参数做校验
~~~
use app\lib\exception\ParameterException;
use think\Request;
use think\Validate;
class BaseValidate extends Validate
{
/**
* 获取客户端传递的参数进行校验
* @return bool
* @throws ParameterException 参数异常
*/
public function goCheck() {
$request = Request::instance();
$data = $request->param();
$result = $this->batch()->check($data);
if (!$result) {
throw new ParameterException([
'msg' => $this->getError()
]);
}
return true;
}
/**
* 必须是正整数
*/
protected function isPositiveInt($value, $rule, $data) {
if (is_numeric($value) && is_int($value + 0) && ($value + 0) > 0) {
return true;
} else {
return false;
}
}
/**
* 不能为空
*/
protected function isNotEmpty($value, $rule, $data) {
if (empty($value)) {
return false;
} else {
return true;
}
}
}
~~~
`ParameterException`的编码如下:
~~~
class ParameterException extends BaseException
{
public $code = 400;
public $msg = '参数错误';
public $errCode = 10000;
}
~~~
* * * * *
使用的实例请看下一小节