2011-04-12 13 views

Respuesta

108

En el método Doctrine 2.1 EntityRepository # findBy() ahora acepta parámetros adicionales para ordenar, limitar y compensar.

see full list new features in doctrine 2.1 (404) Relevant link to findBy and findOneBy

ejemplo:

public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) 

uso:

$product = $repository->findBy(
    array('name' => 'foo'), 
    array('price' => 'ASC'), 
    $myLimit, 
    $myOffset 
); 
+0

Thx por la respuesta, NikSen! No he revisado el sitio de Doctrine últimamente, así que no me di cuenta de esto. – blacktie24

+1

Sería realmente útil si la respuesta hubiera enumerado ejemplos de cómo se usan los parámetros. – Acyra

+0

De acuerdo, he estado buscando la respuesta a esto por unos minutos yo mismo. – Fapiko

3

El método findBy() de la clase de repositorio genérico no es compatible con esto.

Escribo su propio repositorio (como outlined here) y anulo findBy() para tomar parámetros adicionales. Su nueva implementación podría usar el generador de consultas, o simple-viejo-DQL para construir la consulta adecuada. (Usaría el generador de consultas, ya que probablemente solo pase el parámetro $ critera a la derecha en QueryBuilder::where())

+0

Thx timdev, esta es la sugerencia que terminé usando con Doctrine 2.0. – blacktie24

4

Para DQL tiene: QueryBuilder setMaxResults (maxResults entero).

Cuestiones relacionadas