我正在尝试通过其中一个值在 SF1.4 后端模块中订购嵌入式表单。
$this->embedRelation('MyInnerForm as innerForm');
给我一个表格,显示 MyInnerForm 中所有条目的 Edit-Forms。我希望以正确的方式订购它。找不到修改查询以添加 orderBy-Option 或(会更好)使用 PHP 对结果数组进行排序的方法。感谢您的建议。
我正在尝试通过其中一个值在 SF1.4 后端模块中订购嵌入式表单。
$this->embedRelation('MyInnerForm as innerForm');
给我一个表格,显示 MyInnerForm 中所有条目的 Edit-Forms。我希望以正确的方式订购它。找不到修改查询以添加 orderBy-Option 或(会更好)使用 PHP 对结果数组进行排序的方法。感谢您的建议。
查看代码embedRelation
:它只是获取您的关联,在其上运行 foreach 并调用embedForm
.
$subForm = new sfForm();
foreach ($this->getObject()->$relationName as $index => $childObject)
{
$form = $r->newInstanceArgs(array_merge(array($childObject), $formArgs));
$subForm->embedForm($index, $form, $innerDecorator);
$subForm->getWidgetSchema()->setLabel($index, (string) $childObject);
}
$this->embedForm($fieldName, $subForm, $decorator);
看到$this->getObject()->$relationName
零件了吗?没有订购嵌入表单的选项,但您可以自己嵌入它们。
<?php
foreach ($this->getObject()->getMyInnerFormOrderedByStuff() as $index => $childObject)
{
$form = new InnerFormForm($childObject); // todo!!
$subForm->embedForm($index, $form, $innerDecorator);
$subForm->getWidgetSchema()->setLabel($index, (string) $childObject);
}
$this->embedForm($fieldName, $subForm, $decorator);
你必须实施getMyInnerFormOrderedByStuff()
,就是这样。