sfWidgetFormDoctrineChoice:如何从嵌套模型中迭代数据? (Symfony 1.4)

时间:2011-10-11 13:47:49

标签: symfony1 symfony-forms symfony-1.4

我有ConnectForm和其他模型的嵌套字段:Numbers。 我想用所有数字渲染这个ConnectForm,当我只是

时一切正常
    <?php echo $form['numbers_list'] ?>

但我需要打印其他数字的字段,如:价格,代码等。 如何打印?

对我来说最好的方法就是这样:

    <?php foreach($form['numbers_list'] as $num): ?>
        <span> echo $num->renderInput()</span>
        <span>echo $num->getPrice()</span>
        <span>echo $num->getCode()</span>
    <?php endforeach; ?>

1 个答案:

答案 0 :(得分:0)

你可能最好创建一个自定义的sfWidgetFormSchemaFormatter类然后使用它来输出你的表单 - 你可以通过执行<?php echo $form ?>创建新的sfWidgetFormSchemaFormatter类来输出整个表单,例如:

class sfWidgetFormSchemaFormatterCustom extends sfWidgetFormSchemaFormatter
{
  protected
    $rowFormat       = "<span class=\"my-label-class\">%label%</span>\n  <span>%error%%field%%help%%hidden_fields%</span>`n",
    $errorRowFormat  = "<span class=\"my-error-class\" colspan=\"2\">\n%errors%</span>\n",
    $helpFormat      = '<br />%help%',
    $decoratorFormat = "<div>\n  %content%</div>";
}

然后在表单的configure方法中添加以下内容,告诉表单使用自定义装饰器:

$this->getWidgetSchema()->setFormFormatterName('custom');