У меня есть модуль, у которого есть много изображений, и я пытаюсь отобразить форму редактирования для этих изображений на своей странице редактирования. Полученный в результате ввод html-формы показывает неправильную модель, поэтому правильное значение для этих данных не заполняется. Вот мой код просмотра:
<?php
echo $this->Form->create('Unit', array(
'action' => 'edit',
'inputDefaults' => array(
'label' => false,
'div' => false
)
)
);
echo $this->Form->hidden('id');
foreach($this->data['Image'] as $img) {
echo $this->Form->hidden('Image'.$img['id'].'id');
}
echo $this->Form->end('Update Photo');?>
<?php echo $this->Session->flash(); ?>
Мой HTML выглядит так:
<form action="/units/edit/3" id="UnitEditForm" method="post" accept-charset="utf-8">
<div style="display:none;">
<input type="hidden" name="_method" value="POST"/>
</div>
<input type="hidden" name="data[Unit][id]" value="3" id="UnitId"/>
<input type="hidden" name="data[Unit][Image1id]" id="UnitImage1id"/>
<input type="hidden" name="data[Unit][Image2id]" id="UnitImage2id"/>
<input type="hidden" name="data[Unit][Image3id]" id="UnitImage3id"/>
<input type="hidden" name="data[Unit][Image4id]" id="UnitImage4id"/>
<input type="hidden" name="data[Unit][Image5id]" id="UnitImage5id"/>
<input type="hidden" name="data[Unit][Image6id]" id="UnitImage6id"/>
<div class="submit">
<input type="submit" value="Update Photo"/>
</div>
</form>
Я видел несколько учебных пособий, в том числе руководство по CakePHP, в котором показано, как вы можете ввести «Имя модели. [0] .field» и т. Д., Что хорошо и хорошо, когда вы знаете, сколько у вас строк, но когда это случается в CMS? Я не могу найти какую-либо информацию о том, как создать эту форму, просматривая все записи в массиве доступных изображений.
В конце концов, я хочу иметь скрытое поле идентификатора, чтобы запись могла обновляться, показывать реальное изображение (и возможность его изменять), его альтернативное описание (и возможность его изменять), и я предполагаю, что другое скрытое поле для unit_id, связывающего его с этой формой.
UPDATE
используя
echo $this->Form->hidden('Image.'.$img['id'].'.id');
работает сейчас, но возвращает это:
<input type="hidden" name="data[Image][1][id]" value="2" id="Image1Id"/>
<input type="hidden" name="data[Image][2][id]" value="3" id="Image2Id"/>
<input type="hidden" name="data[Image][3][id]" value="4" id="Image3Id"/>
<input type="hidden" name="data[Image][4][id]" value="5" id="Image4Id"/>
<input type="hidden" name="data[Image][5][id]" value="6" id="Image5Id"/>
<input type="hidden" name="data[Image][6][id]" id="Image6Id"/>
Мне нужно начинать с [0], а не с [1]. Вместо того, чтобы получать число по 'id', мне нужно получить подсчитанные числа в массиве $ img, верно? Как мне это сделать?