Ich bin neu in Lehre, und ich kann einfach nicht einen Weg finden, mit Begrenzung die Gesamt Anzahl der Ergebnisse zu erhalten, wenn Grenze mit Criteria
(via setMaxResults
Funktion) unter Verwendung von in den EntityRepository::matching
Methode.Lehre 2 - Gesamt wenn über Repository
In meinem Repository (keine extend
von EntityRepository) Ich verwende die folgende (ich weiß, dass dies nicht der optimale Code ist, ist es nur Lehre lernen verwendet wird):
public function getAll($query = null) {
if ($query instanceof Criteria) {
$users = $this->em->getRepository('App\Entities\User')->matching($query)->toArray();
} else {
$users = $this->em->getRepository('App\Entities\User')->findAll();
}
return $users;
}
Jetzt kann sagen dass die Kriterien wie folgt definiert sind:
$query = Criteria::create();
$query->where(Criteria::expr()->contains('username', 'ron'));
$query->setMaxResults(10);
Und es gibt tatsächlich mehr als 10 Benutzer, die das übereinstimmen.
Wie kann ich die Gesamtzahl der Benutzer ermitteln, die den Kriterien entsprechen?
Ich habe versucht, es in einer einzigen Abfrage zu tun, aber ich denke, COUNT (*), dass Lehre die erste Abfrage funktioniert wie (ohne Begrenzung) bin nicht schnell genug eine große „Overhead“ Auswirkungen haben. Vielen Dank :) –