1

我创建了以下自定义验证约束:

validator.constraint.user.email_unicity:
    class: AppBundle\Validator\Constraints\User\EmailUnicityValidator
    tags:
        - { name: validator.constraint_validator, alias: user_email_unicity_validator }

我将其添加到我的字段中,如下所示:

AppBundle\Security\User\WebserviceUser:
    properties:
        email:
            - AppBundle\Validator\Constraints\User\EmailUnicity: ~

但是我想通过使用约束的别名来避免使用我的类的完整路径,但没有找到正确的方法。像这样的东西:

AppBundle\Security\User\WebserviceUser:
    properties:
        email:
            - user_email_unicity_validator: ~

或者

AppBundle\Security\User\WebserviceUser:
    properties:
        email:
            - @user_email_unicity_validator: ~

在这两种情况下,我都遇到了以下异常:

尝试从命名空间“\Symfony\Component\Validator\Constraints”加载类“[别名]”。您是否忘记了另一个名称空间的“使用”语句?

有没有办法做到这一点?

谢谢大家!:)

[编辑 2015/12/10]

我尝试使用以下别名,但效果不佳(相同的异常消息):

{ name: validator.constraint_validator, alias: User\EmailUnicityValidator }

[编辑 2015/12/11]

这是我的代码详细信息:

# AppBundle\Validator\Constraints\User\EmailUnicity.php
namespace AppBundle\Validator\Constraints\User;

use Symfony\Component\Validator\Constraint;

class EmailUnicity extends Constraint
{
    public $messageMatchesFound = '[...]';

    public function validatedBy()
    {
        return 'user_email_unicity_validator';
    }
}

.

# AppBundle\Validator\Constraints\User\EmailUnicityValidator.php
namespace AppBundle\Validator\Constraints\User;

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;

class EmailUnicityValidator extends ConstraintValidator
{
    public function validate($email, Constraint $constraint)
    {
        [...]
    }
}
4

0 回答 0