如何验证不是 Doctrine 实体对象
How to validate not Doctrine Entity Object
我有一些 $customObject 是 CustomClass 的一个实例,我想用 Symfony 验证来验证它.
自定义Class 不是学说实体 Class。
这是我的习惯Class:
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 实体。
有任何想法吗?
您需要获取 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
我有一些 $customObject 是 CustomClass 的一个实例,我想用 Symfony 验证来验证它. 自定义Class 不是学说实体 Class。
这是我的习惯Class:
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 实体。 有任何想法吗?
您需要获取 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