У меня есть модуль с множеством изображений, и я пытаюсь отобразить форму редактирования для этих изображений на моей странице редактирования. Полученный в результате ввод 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]. поле» и т. д., что хорошо и хорошо, когда вы знаете, сколько строк у вас есть, но когда это когда-либо происходило в CMS? Кажется, я не могу найти никакой информации о том, как создать эту форму, перебирая все записи в массиве доступных изображений. В конце концов, я хочу иметь скрытое поле идентификатора, чтобы запись могла быть обновлена, отображать фактическое изображение (и возможность его изменить), его альтернативное описание (и возможность его изменить) и, я полагаю, еще один скрытый поле для unit_id, которое связывает его с этой формой.
ОБНОВИТЬ с помощью
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, верно? Как мне это сделать?