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

Symfony1 sfWidgetFormDoctrineChoice:如何迭代嵌套模型中的数据?(Symfony 1.4),symfony1,symfony-forms,symfony-1.4,Symfony1,Symfony Forms,Symfony 1.4,我有来自其他模型的带有嵌套字段的ConnectForm:Number。 我想用所有数字呈现这个ConnectForm,当我 <?php echo $form['numbers_list'] ?> 但我需要打印其他数字字段,如:价格、代码等。 如何打印 对我来说最好的方法是这样: <?php foreach($form['numbers_list'] as $num): ?> <span> echo $num->ren

我有来自其他模型的带有嵌套字段的ConnectForm:Number。 我想用所有数字呈现这个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; ?>

echo$num->renderInput()
echo$num->getPrice()
echo$num->getCode()

您最好创建一个自定义的SFWidgetFormSchemaFormat类,然后使用它来输出表单-创建新的SFWidgetFormSchemaFormat类后,您可以通过执行
来输出整个表单,例如:

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>";
}
类sfWidgetFormSchemaFormatter自定义扩展sfWidgetFormSchemaFormatter
{
受保护的
$rowFormat=“%label%\n%error%%field%%help%%隐藏的\u字段%`n”,
$errorRowFormat=“\n%errors%\n”,
$helpFormat='
%help%', $decororFormat=“\n%content%”; }
然后在表单的configure方法中添加以下内容,告知表单使用自定义装饰器:


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

它适用于整个表单?我只需要自定义表单中嵌套数据的输出。如何做?只需更改行格式以匹配所需的行格式。。。然后你就可以输出整个表单了对不起。我解释得很糟糕,我想,或者我只是不明白你的意思:当我输出选项时,问题是我只从DB中获取它的id,而不是其他行。啊,好的-然后你需要查看此页面->并使用
方法
参数…是的。但方法参数仅适用于将在格式化html中打印的值。我想自己格式化那个html。