2011-10-11 82 views
0

我有来自其他模型嵌套字段ConnectForm:数字。 我想使这个ConnectForm与所有数字和一切正常,当我刚刚sfWidgetFormDoctrineChoice:如何迭代嵌套模型中的数据? (Symfony 1.4)

<?php echo $form['numbers_list'] ?> 

,但我需要打印其它Numberss'领域,如:价格,代码等 如何打印呢?

对我来说,最好的办法是这样的:

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

回答

0

你可能是最好创建一个自定义sfWidgetFormSchemaFormatter类,然后使用该输出的形式 - 你可以输出一个整体的形式,一旦你已经创建新sfWidgetFormSchemaFormatter类做<?php echo $form ?>例如:

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>"; 
} 

然后表单的配置方法中添加告诉的形式使用定制的装饰如下:

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

+0

它适用于整个表单吗?我只需要在窗体中自定义输出嵌套数据。怎么做? – VitalyP

+0

只需更改rowFormat以匹配所需的行格式...然后您可以输出整个表格 – ManseUK

+0

对不起。我解释了它不好,我想,或者我只是不明白你: 当我输出选择的问题是,我只得到它的编号,而不是从数据库的其他行。 – VitalyP