2011-01-26 12 views
8

Mi chiedevo se esiste un modo per dichiarare l'ordine predefinito per i miei modelli di dottrina.Attributo di ordinamento predefinito per Doctrine Modello

ad es.

Ho un modello work e ha photos. Quando carico un lavoro, tutte le foto ad esso associate vengono caricate in $work->photos. Quando li visualizzo, sono ordinati in base ai loro ID.

Sarebbe molto comodo dichiarare un ordine di default su un altro campo o forse sovrascrivere il comportamento di recupero in eccesso.

Preferisco non convertire le foto in un array e utilizzare usort. Grazie.

risposta

9

È possibile specificare nel YAML come segue:

Se si tratta di un ordine di ordinamento per un campo nella tabella stessa aggiunge:

options: 
    orderBy: fieldname 

dove options: è alla stessa profondità come ci si avere una voce columns: o relations:. Nota: la capitalizzazione di orderBy: è vitale; sbagliarti e non riceverai alcun errore ma anche nessun ordinamento.

Se si tratta di un ordine di ordinamento per un rapporto poi, all'interno della relazione è possibile saltare la parte options: e appena messo in:

orderBy: fieldname 
+4

O per @OrderBy annotazione: http: //www.doctrine-project. org/docs/orm/2.0/it/reference/annotations-reference.html # annref-orderby – Alex

+0

In quale file yml stai facendo questo? – Squazic

+0

Dipende. In doctrine1, la risposta è valida (e riguarda il file YAML dello schema), ma in doctrine2 è semplicemente impossibile. Come soluzione, vedi il commento di @ Alex. – Frizi

Problemi correlati