У меня проблема при отображении нескольких форм одной модели на одной странице.
Проблема в том, что с NameFormat поля имеют одинаковый идентификатор:
$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>
И Если вы нажмете на второй ярлык, он активирует первый флажок
Поэтому я подумал, что могу использовать идентификатор объекта, чтобы сделать их уникальными:
$this->widgetSchema->setNameFormat('display'.$this->getObject()->getId().'[%s]');
Но тогда я не могу обработать запрос, так как не знаю названия параметров.
Лучший вариант, который я нашел, это установить ID:
$this->widgetSchema['displayed']->setAttributes(array("id" => "display".$this->getObject()->getId() ));
но тогда я полностью теряю связи между ярлыком и флажком.
Проблема была бы решена, если бы я мог изменить атрибут for для метки. Кто-нибудь знает, как это сделать? Или любой другой вариант?