Doctrine模型的默认排序属性

9
我想知道是否有一种方法可以声明我的Doctrine模型的默认顺序。
例如,我有一个“work”模型,它有“photos”。当我加载一个工作时,与之关联的所有照片都会加载到“$work->photos”中。当我展示它们时,它们按其ID排序。
声明另一个字段的默认顺序或覆盖提取行为将非常方便。
我不想将照片转换为数组并使用usort。谢谢。
3个回答

10
你可以按照以下方式在YAML中指定它:
如果是用于表本身字段的排序顺序,请添加:
options:
  orderBy: fieldname

“options:”需要与“columns:”或“relations:”在同一深度。注意:大小写的差异对于“orderBy:”是至关重要的;如果错误了,你将不会得到任何错误提示,也没有排序。

如果这是一个关系的排序顺序,那么在关系内部,您可以跳过“options:”部分,直接输入:

orderBy: fieldname

4
可以使用 @OrderBy 注解来排序:http://www.doctrine-project.org/docs/orm/2.0/zh/reference/annotations-reference.html#annref-orderby - Alex
你在哪个yml文件中进行这个操作? - Squazic
这要看情况。在doctrine1中,答案是有效的(它涉及模式YAML文件),但在doctrine2中却不可能实现。作为解决方法,请参考@Alex的评论。 - Frizi
1
@OrderBy注释仅适用于关系。 它无法在顶级实体上工作。 “您只能在以下代码元素上使用此注释:PROPERTY” 此外,此答案未提供定义排序方向的任何方法。 - Hayden

4

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接