从symfony中的约束获取EntityManager

Fra*_*ert 1 symfony

事实是,我正在创建一个自定义验证器,在新的验证器类中,我应该执行以下操作:

class EmailDoesntExistValidator extends ConstraintAValidator
{
    public function validate($value, Constraint $constraint)
    {
        $em     = $this->getDoctrine()->getEntityManager(); // ERROR!!!!!!!
        $result = $em->getRepository('CgboardSignupBundle:User')->userExist($value);

        if (empty($result)) {
            return true;
        }

        $this->context->addViolation($constraint->message, array());
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有这个错误:

Error: Call to undefined method Cgboard\SignupBundle\Validator\Constraints\EmailDoesntExistValidator::getDoctrine() 
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Alj*_*anc 5

它不起作用,因为您需要注入EntityManager / Doctrine依赖项。

在此处阅读如何创建具有依赖项的验证器:http : //symfony.com/doc/current/cookbook/validation/custom_constraint.html#constraint-validators-with-dependencies