采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
OrderPlace里面的验证器写入BaseValidate该怎么弄?$singleRule这个规则不知道怎么传入BaseValidate去?请老师解答。
因为BaseValidate继承了Validate,Validate类中有个构造函数,当实例化BaseValidate时传入的第一个参数就是$singleRule这个需要验证的规则。
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这个类里。望老师解答。
我大概知道你的意思,你是想在子类里继承rule这个规则,然后在添加新的规则?恐怕不行,只能添加自定义的规则。
能不能给一段具体的代码?
登录后可查看更多问答,登录/注册
全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计
1.3k 23
1.5k 21
1.5k 19
1.6k 18
1.3k 18