4
我正在創建一個註冊表單並希望檢查電子郵件是否尚未與帳戶關聯。我能看到的所有方法都會創建整個用戶實體,但我只需要知道它是否存在。判斷實體是否存在於Doctrine 2中的最有效方法
我正在創建一個註冊表單並希望檢查電子郵件是否尚未與帳戶關聯。我能看到的所有方法都會創建整個用戶實體,但我只需要知道它是否存在。判斷實體是否存在於Doctrine 2中的最有效方法
public function isUnusedEmail($email) {
$em = static::$pimple['em'];
$dql = 'SELECT 1 FROM App\Model\User user WHERE user.email = :email';
$query = $em->createQuery($dql);
$query->setParameter('email', $email);
$res = $query->getResult();
return empty($res);
}
考慮以下方法:
/**
* @param string $token
* @return bool
*/
public function isTokenUnique($token)
{
$manager = $this->getEntityManager();
/** @var Doctrine\ORM\Query $query */
$query = $manager->
createQuery('SELECT 1 FROM AppBundle:Member m WHERE m.token = :token')
->setParameter('token', $token)
->setMaxResults(1)
;
return (count($query->getResult()) == 0);
}
通知書setMaxResults()
通話。在某些情況下,這可能很重要。
我還沒有遷移到Symfony 2,但是在Symfony 1中,您可以在窗體的驗證器模式中添加一個'sfValidatorDoctrineUnique'。 Symfony 2中不存在類似的概念嗎? – 2012-02-18 18:48:53
我沒有在Symfony裏面使用Doctrine。 – 2012-02-20 17:41:13
好點。這會教會我忽略這樣一個事實,即一個問題沒有用框架標記(: – 2012-02-20 19:09:07