0

我正在尝试通过其中一个值在 SF1.4 后端模块中订购嵌入式表单。

$this->embedRelation('MyInnerForm as innerForm');

给我一个表格,显示 MyInnerForm 中所有条目的 Edit-Forms。我希望以正确的方式订购它。找不到修改查询以添加 orderBy-Option 或(会更好)使用 PHP 对结果数组进行排序的方法。感谢您的建议。

4

1 回答 1

0

查看代码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(),就是这样。

于 2013-09-11T12:56:07.773 回答