在模型测试的编辑页面上,我希望能够更新来自同一表单的所有相关(通过 hasMany)问题的“Questions.order”字段。
我已经准备好书中关于 saveMany()/saveAll() 的 Cake book 章节,我正在使用Model.0.field syntax
但我不知道如何告诉 CakePHP哪个记录对应于哪个输入。#
in是否应该Model.#.field
对应于问题的 id 字段?这是我目前正在做的事情:
echo $this->Form->create( 'Question', array('action'=>'order'));
$n = 0;
foreach ($questions_array as $question) : ?>
<?php echo $this->Form->input('Question.'.$n.'.order' ); ?>
<?php echo $this->Form->input('Question.'.$n.'.id', array('type'=>'hidden', 'value'=>$question['Question']['id']) ); ?>
<input type="submit" value="Save" />
...
$n++;
endforeach;
$this->Question->Form->end();
表单提交并显示为保存,但更新的order
值与正确的问题记录不对应。我究竟做错了什么?
更新:
这是order
我的控制器中的操作:
public function admin_order() {
$data = $this->request->data;
$this->Question->saveAll($data['Question']);
$this->Session->setFlash( "Order saved.");
$this->redirect( $this->referer() );
}