symfony4验证构造函数中的对象

时间:2018-10-22 13:56:52

标签: validation annotations symfony4

我有一个带有注释验证规则的类,我想在设置所有必需数据后立即在构造函数调用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。

知道我在做什么错吗?谢谢!

更新: 在构造函数之外,它也不起作用

0 个答案:

没有答案