我想知道是否有办法为我的学说模型声明默认顺序。
例如
我有一个work
模型,它有photos
。当我加载作品时,与其关联的所有照片都会加载到$work->photos
. 当我显示它们时,它们按它们的 ID 排序。
在另一个字段上声明默认顺序或者完全覆盖获取行为会非常方便。
我宁愿不将照片转换为数组并使用 usort。谢谢。
我想知道是否有办法为我的学说模型声明默认顺序。
例如
我有一个work
模型,它有photos
。当我加载作品时,与其关联的所有照片都会加载到$work->photos
. 当我显示它们时,它们按它们的 ID 排序。
在另一个字段上声明默认顺序或者完全覆盖获取行为会非常方便。
我宁愿不将照片转换为数组并使用 usort。谢谢。
您可以在 YAML 中指定它,如下所示:
如果它是表本身中字段的排序顺序,请添加:
options:
orderBy: fieldname
whereoptions:
与您拥有columns:
orrelations:
条目的深度相同。注意:大写orderBy:
是至关重要的;弄错了,你不会得到错误,但也不会排序。
如果它是关系的排序顺序,那么在关系中您可以跳过该options:
部分并输入:
orderBy: fieldname
好的,感谢这篇文章,我解决了这个问题: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 中指定它,我无法正常工作。
我不知道关于原则的第一件事,但看起来你可以在调用 create() 时指定 order by 子句。