В моем приложении cakephp у меня есть модель Option.Редактирование и сохранение нескольких записей в cakephp
В моем варианте/индексном представлении я отображаю 2 варианта со входами и полями переключателей. Я хочу обновить их оба, но я получаю странное поведение.
Опция, которую я изменяю, не сохраняется, и вместо нее добавляется новая опция с новым значением.
Вот мой взгляд
<h2 class='page-title' id='manage-options'>Opzioni</h2>
<?php echo $form->create(null, array('action'=>'index')); ?>
<table>
<tr>
<td><?= $options[0]['Option']['name']?></td>
<td><?= $form->radio(
$options[0]['Option']['id'],
array(
'1' => 'Sì',
'0' => 'No'),
array('default'=> $options[0]['Option']['value'], 'legend'=>false)
);?>
</td>
</tr>
<tr>
<td><?= $options[1]['Option']['name']?></td>
<td><?= $form->input($options[1]['Option']['id'],array('label'=>false,'value' => $options[1]['Option']['value']))?></td>
</tr>
</table>
<?php echo $form->submit('Salva'); ?>
<?php echo $form->end(); ?>
И мой контроллер:
function index() {
if (!empty($this->data)) {
foreach($this->data['Option'] as $id => $value) :
$this->Option->id = $id;
$feedback = $this->Option->read();
$this->Option->saveField('value', $value);
endforeach;
$this->Session->setFlash('Opzioni aggiornate');
}
$this->Option->recursive = 0;
$this->set('options', $this->paginate());
}
Перед отправкой здесь я провел два часа прибегая к помощи ответов и экспериментировать. Я знаю о saveAll()
и я попробовал эти решения:
http://planetcakephp.org/aggregator/items/2172-cakephp-multi-record-forms http://teknoid.wordpress.com/2008/10/27/editing-multiple-records-with-saveall/
Я подкорректировал свой код, чтобы соответствовать этим моделям, но я не получил никаких результатов (колеблющийся между «не работает» и «не работает и Я получаю дополнительную запись '), поэтому я решил опубликовать свой оригинальный код.
Вы можете помочь, указав наиболее подходящий способ сделать это? Cheeers, Davide
Первый параметр не является идентификатором, это индекс массива, указывающий на N-й элемент массива результатов. Кроме того, полные поля ввода корректны (данные [Option] [id]). В любом случае, спасибо за предложение, но оно не применяется. – nutsmuggler