在我的cakephp應用程序中,我有一個選項模型。編輯並保存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());
}
前張貼在這裏,我花了兩個小時google搜索答案和試驗。我知道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
第一個參數不是ID,它是一個數組索引,指向結果數組的第N個元素。此外,生成的輸入字段是完全正確的(data [Option] [id])。無論如何感謝您的建議,但它不適用。 – nutsmuggler 2009-08-17 07:48:11