我正在寫一個忘記密碼錶單,並且使用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