我有一个带有注释验证规则的类,我想在设置所有必需数据后立即在构造函数调用validate($this)
中对其进行验证。
代码如下:
class BaseInfo
{
/**
* @Assert\NotBlank()
* @var string
*/
private $appId;
/**
* @Assert\NotBlank()
* @Assert\Regex("/itunes.apple|play.google/")
* @var string
*/
private $previewUrl;
/**
* AdActionBaseAppInfo constructor.
* @param HasOfferAppResponse $response
*/
public function __construct(AppResponse $response)
{
$this->previewUrl = $response->getPreviewUrl();
$this->appId = $response->getAppId();
$errors = Validation::createValidator()->validate($this);
if($errors->count() > 0) {
throw new \InvalidArgumentException((string)$errors);
}
}
}
但是验证似乎无法正常工作,因为它允许传递任何预览URL和null
或空的应用程序ID。
知道我在做什么错吗?谢谢!
更新: 在构造函数之外,它也不起作用