La Doctrine de Base::getTable()->findAll() comment spécifier l'ordre?

Lorsqu'on utilise un objet Doctrine_Table , est-il possible de préciser l'ordre de la collection retournée lorsqu'on utilise findAll() ou findByWhatever() ?

Dans le doc je vois des trucs sur getOrderByStatement() et processOrderBy() mais il n'est pas clair sur la façon de les utiliser...

23
demandé sur Jake Wilson 2011-08-19 20:04:56

4 réponses

, Vous pouvez aussi laisser le premier tableau vide

  $em->getRepository('BackendDestinyBundle:Destiny')->findBy(array(), array('title'=>'asc'));
58
répondu Aaron 2013-03-25 09:28:47

vous pouvez en fait spécifier un ordre par défaut dans votre schéma:

Foo:
  columns:
    ...
  options:
    orderBy: bar DESC

notez que lorsque vous voulez spécifier un ordre différent, vous pouvez toujours créer une requête et annuler l'ordre par défaut.

13
répondu Gerry 2011-08-19 19:50:43

selon Jon Wage vous devez créer une requête dans ce cas ... trouvé dans le mailing-list

6
répondu Flask 2011-08-19 17:02:37

dans mon cas, le problème était que j'avais une déclaration comme celle-ci

$destinos  = $em->getRepository('BackendDestinyBundle:Destiny')->findAll();

enfin je l'ai changé en une déclaration de CreateQuery, il fait exactement la même chose, mais je peux mettre une ordonnance par phrase

$destinos  = $em->createQuery("SELECT d FROM BackendDestinyBundle:Destiny d order by d.name")->getResult();
1
répondu Jorge Ibacache 2013-03-14 18:35:47