我有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; ?>
答案 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');