我正在编写一个忘记密码的表单,并且使用 PHP 验证(而不是 YML),我首先尝试检查电子邮件地址是否存在。
我想我大部分时间都在那里,但我似乎无法在验证器中运行 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;
}
}
我得到“未定义的属性 - 容器”。