2011-01-26 8 views
8

Me preguntaba si hay una forma de declarar el orden predeterminado para mis modelos de doctrina.Atributo de clasificación predeterminado para Doctrine Model

p. Ej.

Tengo un modelo work y tiene photos. Cuando cargo un trabajo, todas las fotos asociadas se cargan en $work->photos. Cuando los exhibo, están ordenados por sus ID.

Sería muy conveniente declarar un orden predeterminado en otro campo o quizás anular el comportamiento de búsqueda por completo.

Prefiero no convertir las fotos a una matriz y usar la usort. Gracias.

Respuesta

9

Puede especificar que en el YAML como sigue:

si se trata de un orden de clasificación de un campo en la tabla en sí añadir:

options: 
    orderBy: fieldname 

donde options: es a la misma profundidad como desee tener una entrada columns: o relations:. NB: La capitalización de orderBy: es vital; obténgalo mal y no obtendrá ningún error, pero tampoco sorteará.

Si se trata de un orden de clasificación para una relación, entonces, dentro de la relación puede omitir la parte options: y sólo hay que poner en:

orderBy: fieldname 
+4

O por @OrderBy anotación: http: //www.doctrine-project. org/docs/orm/2.0/es/reference/annotations-reference.html # annref-orderby – Alex

+0

¿Qué archivo yml estás haciendo esto? – Squazic

+0

Depende. En doctrine1, la respuesta es válida (y se trata del archivo de esquema YAML), pero en doctrine2 es simplemente imposible de hacer. Como solución alternativa, vea el comentario de @ Alex. – Frizi

Cuestiones relacionadas