我在同一页面上显示同一模型的几种表单时遇到问题。 的问题是,与NameFormat,该字段具有相同的ID:Symfony - 在同一页上显示多个表单 - > ID问题
$this->widgetSchema->setNameFormat('display[%s]');
将显示
<form class="update_display_form" id="update_display_0" action="/iperf/web/frontend_dev.php/update_display" method="post">
<input type="checkbox" name="display[displayed]" checked="checked" id="display_displayed" />
<label for="display_displayed">test</label>
</form>
<form class="update_display_form" id="update_display_1" action="/iperf/web/frontend_dev.php/update_display" method="post">
<input type="checkbox" name="display[displayed]" checked="checked" id="display_displayed" />
<label for="display_displayed">truc</label>
</form>
而且如果您单击第二个标签,它会激活第一个复选框 所以我想我可以使用对象ID来使它们独一无二:
$this->widgetSchema->setNameFormat('display'.$this->getObject()->getId().'[%s]');
但是然后我无法处理请求,因为我不知道参数的名称。
我发现最好的办法是设置一个ID:
$this->widgetSchema['displayed']->setAttributes(array("id" => "display".$this->getObject()->getId()));
但后来我完全松散的标签和复选框之间的连接。
如果我可以更改标签的“for”属性,问题就会解决。有人知道如何做到这一点吗?或者有其他选择吗?
我可能会创建一个基于模型的新表单,然后给他们不同的名称格式。 – Tom 2010-05-28 17:41:39
我不能这样做,因为页面上的表单数量不固定。虽然感谢 – Julien 2010-05-28 20:22:26