OrderPlace里面的验证器写入BaseValidate怎么弄
来源:10-7 编写一个复杂的验证器

Whitekey
2017-11-12
OrderPlace里面的验证器写入BaseValidate该怎么弄?$singleRule这个规则不知道怎么传入BaseValidate去?请老师解答。
写回答
3回答
-
慕粉3402813
2019-03-07
因为BaseValidate继承了Validate,Validate类中有个构造函数,当实例化BaseValidate时传入的第一个参数就是$singleRule这个需要验证的规则。
00 -
Whitekey
提问者
2017-11-13
class OrderPlace extends BaseValidate { protected $rule = [ 'products' => 'checkProducts' ]; protected $singleRule = [ 'product_id' => 'require|isPositiveInteger', 'count' => 'require|isPositiveInteger', ]; protected function checkProducts($values) { ... foreach ($values as $value) { $this->checkProduct($value); } return true; } protected function checkProduct($value) { $validate = new BaseValidate($this->singleRule); $result = $validate->check($value); if(!$result){ throw new ParameterException([ 'msg' => '商品列表参数错误', ]); } } }
如何让这个验证规则也变成通用的规则,我就是不知道怎么把子规则验证传入BaseValidate这个类里。望老师解答。
012017-11-13 -
7七月
2017-11-13
能不能给一段具体的代码?
00
相似问题