2011-08-19 4 views

risposta

57

Si può anche lasciare il primo array vuoto

$em->getRepository('BackendDestinyBundle:Destiny')->findBy(array(), array('title'=>'asc')); 
+0

Ok mio male, non piangere per favore solo cercando di aiutare – Aaron

+0

@Aaron Nice hack, ha funzionato anche per me. – krishna

+1

Grazie. Questo è quello che volevo. Veloce, semplice e funziona a meraviglia. – dnshio

6

Secondo Jon salariale è necessario creare una query in questo caso ... Trovato nel mailing-list

+0

Ya ho pensato che potrebbe essere l'unica soluzione, solo che non era sicuro. Grazie –

13

È possibile infatti specificare un ordine predefinito nello schema:

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

si noti che quando si desidera specificare un ordine diverso, è comunque possibile creare una query e ignorare il d ordine predefinito da.

+0

Non lo sapevo. Questo è molto utile. Grazie –

+1

non è questo solo per le relazioni? – Flask

+1

No, funziona anche per i modelli, ma in effetti puoi usare questo trucco anche sulle relazioni. – Gerry

1

Nel mio caso, il problema era che avevo una dichiarazione come questa

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

finalmente ho cambiato in una dichiarazione createQuery, fa esattamente lo stesso, ma posso mettere una frase OrderBy

$destinos = $em->createQuery("SELECT d FROM BackendDestinyBundle:Destiny d order by d.name")->getResult(); 
+2

Qui stai parlando di Doctrine 2 e, a proposito, questo non è il modo migliore per usare Doctrine. Dovresti creare una query senza scrivere codice SQL ... Stai perdendo tutti i vantaggi dall'ORM qui ... – j0k

+9

In realtà sta usando l'ORM piuttosto bene qui dato che è DQL, non SQL. –