在我的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