我在同一頁面上顯示同一模型的幾種表單時遇到問題。 的問題是,與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