Si j'utilise la méthode findBy de la classe de référentiel, comment puis-je limiter la taille de l'ensemble de résultats?
Dans Doctrine 2.1 EntityRepository # findBy () accepte désormais des paramètres supplémentaires pour le classement, la limite et le décalage.
voir la liste complète des nouvelles fonctionnalités dans doctrine 2.1 (404) Lien pertinent vers findBy et findOneBy
exemple:
public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
usage:
$product = $repository->findBy(
array('name' => 'foo'),
array('price' => 'ASC'),
$myLimit,
$myOffset
);
Pour Doctrine Query Language vous avez:
QueryBuilder::setMaxResults(integer $maxResults)
La méthode findBy () de la classe de référentiel générique ne prend pas en charge cela.
J'écrirais votre propre référentiel (comme décrit ici ) et remplacerais findBy () pour prendre des paramètres supplémentaires. Votre nouvelle implémentation peut utiliser le générateur de requêtes ou plain-old-DQL pour créer la requête appropriée. (J'utiliserais le constructeur de requêtes, car vous pouvez probablement simplement passer le paramètre $ critera directement dans QueryBuilder :: where () )