我正在写一个忘记密码表单,并且使用PHP验证(而不是YML),我试图首先检查电子邮件地址是否存在。Symfony验证器与教义查询
我想我主要是在那里,但我似乎无法在验证器内部运行一个Doctrine查询。这是我到目前为止:
class EmailExistsValidator extends ConstraintValidator
{
public function isValid($value, Constraint $constraint)
{
$em = $this->container->get('doctrine.orm.entity_manager');
$query = $em->createQuery('SELECT COUNT(id) FROM users WHERE email=:email')
->setParameter('email', $value);
$count = $query->getQuery()->getSingleScalarResult();
if ($count != 1) {
$this->setMessage($constraint->message);
return false;
}
return true;
}
}
我得到“未定义的属性 - 容器”。
也许这可以帮助你:http://php-and-symfony.matthiasnoback.nl/2011/11/symfony2-creating-a-validator-with-dependencies-make-it-a-service/ – 2013-05-06 12:31:34
谢谢,但它没有显示如何在那里得到一个Doctrine查询 – James 2013-05-06 12:37:54