2016-04-22 23 views
-1

Ich möchte überprüfen, ob ein Datensatz in der Datenbank vorhanden ist. Das einzige, was es zurückgeben muss, ist wahr oder falsch. Ich verwende jetzt die folgende Abfrage, um den Datensatz zu erhalten. Ist der andere Befehl wie getResult() um zu überprüfen, ob der Datensatz existiert?Doctorine überprüfen, ob der Datensatz in der Datenbank existiert

return $this->createQueryBuilder('u') 
      ->andWhere('u.email = :email AND u.id != :id') 
      ->setParameter('email', $email) 
      ->setParameter('id', $userId) 
      ->getQuery() 
      ->getResult(); 

Antwort

2
return (boolean)$this->createQueryBuilder('u') 
      ->andWhere('u.email = :email AND u.id != :id') 
      ->setParameter('email', $email) 
      ->setParameter('id', $userId) 
      ->getQuery() 
      ->getOneOrNullResult(); 

Bitte beachten Sie, dass, wenn es möglich ist (zum Beispiel dort auf E-Mail-Spalte kein eindeutiger Index ist), dass die Abfrage mehr Ergebnisse zurückgibt, dann mit müssen Sie auch den Anruf wickeln try/catch-Block, weil es eine Ausnahme auslöst, wenn mehr als ein Ergebnis gefunden wird.

Verwandte Themen