Самый эффективный способ узнать, существует ли сущность в Учении 2 - PullRequest
4 голосов
/ 18 февраля 2012

Я создаю регистрационную форму и хочу проверить, не связано ли письмо с учетной записью.Все способы, которые я вижу, создадут весь объект User, но мне просто нужно знать, существует ли он.

Ответы [ 2 ]

9 голосов
/ 18 февраля 2012
  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);
  }
2 голосов
/ 04 февраля 2014

Рассмотрим следующий метод:

/**
 * @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(). В некоторых случаях это может быть важно.

...