如何不验证原则实体对象

时间:2018-12-20 11:25:29

标签: php symfony validation symfony4 symfony-validator

我有一些 $ customObject ,它是 CustomClass 的实例,我想用Symfony Validation对其进行验证。 CustomClass 不是教义实体类。

这是我的CustomClass:

use Symfony\Component\Validator\Constraints as Assert;
class SomeClass {
    /**
    * @Assert\NotBlank(message="Status should not be empty")
    * @Assert\Choices({"200", "201"})
    */
    protected $status;

    /**
    * @Assert\Type("string")
    * @Assert\NotBlank(message="Content should not be empty")
    */
    protected $content;
}

尝试验证它:

$constraints = Validation::createValidator()->validate($customObject);

但是,即使对象无效,约束计数也始终为0,似乎注释解析器会忽略此对象注释。在同一项目中的Doctrine实体上工作良好。 有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您需要获取Validator服务:

没有自动接线

$validator = $this->get('validator');

具有自动接线

use Symfony\Component\Validator\Validator\ValidatorInterface;
...
public function myMethod(ValidatorInterface $validator)

然后

$errors = $validator->validate($customObject);

您是否有配置:

framework:
    validation: { enable_annotations: true }

在此处查看更多信息: https://symfony.com/doc/current/validation.html#using-the-validator-service