事实是,我正在创建一个自定义验证器,在新的验证器类中,我应该执行以下操作:
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)
任何的想法?
它不起作用,因为您需要注入EntityManager / Doctrine依赖项。
在此处阅读如何创建具有依赖项的验证器:http : //symfony.com/doc/current/cookbook/validation/custom_constraint.html#constraint-validators-with-dependencies