我正在创建一个注册表单,并想检查一封电子邮件是否已与某个帐户相关联。我能看到的所有方式都将创建整个用户实体,但我只需要知道它是否存在。
答案 0 :(得分:9)
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);
}
答案 1 :(得分:2)
考虑以下方法:
/**
* @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()
。在某些情况下这很重要。