我在尝试保存(更新)某些关联数据时遇到问题。我已经阅读了大约一百万的谷歌回报,但似乎没有什么是解决方案。我在我的智慧结束,并希望这里有一些善良的灵魂可以提供帮助。
我正在使用1.3.0-RC4,我的数据库在InnoDB中。
课程有很多课程 CourseTee属于课程
我的控制器功能非常简单(我尽可能简单):
if(!empty($this->data))
$this->Course->saveAll($this->data);
我尝试了很多不同的$ this->数据['课程']变体,保存($ this->数据)等,没有运气。
它会保存课程信息,但不保存CourseTee的内容。我没有收到错误消息。
由于我不知道任何给定课程将有多少T恤,我会在循环中动态生成表格输入。
$form->input('CourseTee.'.$i.'.teeName', array(
'error' => false,
'label' => false,
'value'=>$data['course_tees'][$i]['teeName']
))
课程输入更简单:
$form->input('Course.hcp'.$j, array(
'error' => false,
'label' => false,
'class' => 'form_small_w',
'value'=>$data['Course']['hcp'.$j]
))
这就是我的数据格式化方式:
Array
(
[Course] => Array
(
[id] => 1028476
...
)
[CourseTee] => Array
(
[0] => Array
(
[key] => 636
[courseid] => 1028476
...
)
[1] => Array
(
[key] => 637
[courseid] => 1028476
...
)
...
)
)
答案 0 :(得分:2)
根据CakePHP惯例,您必须提供[course_id] => 1028476
而不是[courseid] => 1028476
。检查模型绑定(大写和下划线)。必须有“课程有很多课程”。
要保存this way:
if ($this->Course->saveAll($this->data, array('validate' => 'first'))) {
$this->_flash(__('Successfully saved.', true), 'success');
} else {
$this->_flash(__('Cannot save. Does not validates.', true), 'error');
}