我有一个具有不同实体和密码属性的应用程序。目前,每个实体都有一组重复的密码属性属性约束:
<?php
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
// ...
$metadata->addPropertyConstraint('password', new Length(...);
$metadata->addPropertyConstraint('password', new NotBlank(...);
$metadata->addPropertyConstraint('password', new Custom1(...);
$metadata->addPropertyConstraint('password', new Custom2(...);
// ...
}
我想要一个自定义验证器&#34; PasswordValidator&#34;哪个&#34;团体&#34;如上所述的所有不同约束。在这种情况下,我只需要为每个密码属性添加一个属性约束。
像这样:
<?php
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
// ...
$metadata->addPropertyConstraint('password', new MyCustomPassword(...);
// ...
}
有什么想法吗?
答案 0 :(得分:0)
您需要使用All
Symfony2内置约束:http://symfony.com/doc/current/reference/constraints/All.html
基本上,这就是你的情况:
<?php
use Symfony\Component\Validator\Constraints as Assert;
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
// ...
$metadata->addPropertyConstraint(
'password',
new Assert\All(
new Assert\Length(...),
new Assert\NotBlank(...),
new Assert\Custom1(...),
new Assert\Custom2(...)
)
);