我想知道是否有办法声明我的学说模型的默认顺序。
e.g。
我有一个work
模型,它有photos
。加载作品时,与其关联的所有照片都会加载到$work->photos
。当我显示它们时,它们按其ID排序。
在另一个字段上声明默认订单或者覆盖提取行为altCHhether非常方便。
我宁愿不将照片转换为数组并使用usort。感谢。
答案 0 :(得分:10)
您可以在YAML中指定它,如下所示:
如果它是表格中字段的排序顺序,则添加:
options:
orderBy: fieldname
其中options:
与您拥有columns:
或relations:
条目的深度相同。注意:orderBy:
的大写是至关重要的;弄错了,你不会得到任何错误但也没有排序。
如果它是关系的排序顺序,那么在关系中你可以跳过options:
部分并输入:
orderBy: fieldname
答案 1 :(得分:4)
好的,我感谢这篇文章:http://www.littlehart.net/atthekeyboard/2010/02/04/sorting-relationship-results-in-doctrine-1-2-2/
就我而言,BaseWork.php文件有这样的修改:
public function setUp()
{
parent::setUp();
$this->hasMany('Photo as photos', array(
'local' => 'id',
'orderBy' => 'display_order',
'foreign' => 'work_id'));
无论如何,最好在schema.yml中指定它,这是我无法工作的。
答案 2 :(得分:0)
我不知道关于教义的第一件事,但看起来你可以在调用create()时指定order by子句。