Closed phper666 closed 5 years ago
你是使用在一个单例对象里吗?
GroupController.php:
SaAuthGroupLogic.php:
应该是单例对象
我知道了,swoft使用注解获取对象是单例。所以$this->_validated修改后,一直保留该值。单例后无法重置验证吗?是否能每次都能重新验证
你通过什么方式重新载入数据的
BaseActiveRecord.php
我里面有个 resetValidation() 方法,可以开放出来,你每次 setData 时,都调用一下它。
https://github.com/inhere/php-validate/blob/master/src/ValidationTrait.php#L394-L404
OK
@phper666 😯看差了,哈哈 你用的是 trait 呀,可以直接调用 resetValidation 的
public function setData(array $data)
{
$this->data = $data;
$this->resetValidation();
}
嗯嗯,已经解决,感谢
在php-validate/src/ValidationTrait.php 的161、265行代码有点问题,貌似变量未被释放,下次再来验证直接返回了。 场景: 我用postman来请求某个更新数据的接口,采用了方法3的方式进行验证。返回了缺少某个参数的错误,后面我修改了携带的参数,参数已经是完全正确的了,但是还是返回了相同的错误。追踪代码,发现在ValidationTrait.php 161行代码直接返回对象,不进行验证了。也就是$this->_validated为true了。这个如何解决呢?