我有两个控制器:事件和结果。事件有很多结果,结果属于事件。我可以保存得很好,但是当我去编辑时,我只能获取表单的事件部分的信息,自动进入。
我像这样构建结果表单信息:
$option_number = 5;
for ($i = 0; $i < $option_number; $i++) {
echo $this->Form->select("Result.{$i}.object_id", $qual_options, array('empty' => false, 'class' => 'result-name'));
echo $this->Form->hidden("Result.{$i}.id");
echo $this->Form->hidden("Result.{$i}.type", array('value' => 'qual'));
echo $this->Form->hidden("Result.{$i}.action", array('value' => 'add')); ?>
}
在后端,当我这样做以获得自动人口时:
if ($this->request->is('get')) {
$this->request->data = $this->Event->findById($id);
}
它工作得很好,但我不知道如何让它显示结果。我尝试了很多事情,最有可能是:
$this->request->data['Result'] = $this->Result->findAllByEventId($id);
有了这个,我最终得到了一个数据结构,如:
[Result] => Array
(
[0] => Array
(
[Result] => Array
(
[id] => 1
[object_id] => 1
[type] => qual
[action] => add
[amt] => 10
[event_id] => 1
)
)
[1] => Array
(
[Result] => Array
(
[id] => 2
[object_id] => 2
[type] => qual
[action] => add
[amt] => 1
[event_id] => 1
)
)
... etc.
)
)
这绝对看起来很可疑,我似乎无法操纵它来工作。
更新我应该提到这一点;这就是我保存数据时的样子,我想模仿它!
[Result] => Array
(
[0] => Array
(
[object_id] => 1
[type] => qual
[action] => add
[amt] => 0
[event_id] => 3
)
[1] => Array
(
[object_id] => 1
[type] => qual
[action] => add
[amt] => 1
[event_id] => 3
)
可以看到后面的每个数字键都有信息;相反,我的数字键在它们名称 Result 中也有一个数组,我不知道如何让它正确消失!:} 我总是可以循环并以 CakePHP 想要的格式构建它,但我想正确地做到这一点。上面那一行是需要改变的,但我已经没有想法了。