我正在尝试将数据直接保存到HABTM表products_students
中我这样做是因为此表中有一个字段需要在我的控制器中手动设置。
在设置'欠'字段后,我的$ this->数据数组目前看起来像这样。
Array
(
[OfferingsStudent] => Array
(
[OfferingsStudent] => Array
(
[0] => Array
(
[offering_id] => 35
[owing] => 209.00
[student_id] => 31
)
)
)
)
表单允许多个选择,因此我必须能够将多个记录保存到HABTM表中。
我的保存声明:$this->Student->OfferingsStudent->save($this->data)
问题是记录没有添加到表中。我必须能够通过单个表单提交将多个记录添加到表中。
我必须补充说正在创建记录,但所有字段最终都是零。
编辑:
更改了数组以尝试提交的解决方案,但仍然没有运气。
$ this->数据数组:
Array
(
[OfferingStudent] => Array
(
[0] => Array
(
[offering_id] => 35
[owing] => 209.00
[student_id] => 31
)
)
)
答案 0 :(得分:1)
你没有问过一个问题。你试图保存的问题不起作用吗?您是要插入新记录还是更新新记录?
如果只是插入,请尝试改为:
$data = array(
[offering_id] => 35
[owing] => 209.00
[student_id] => 31
);
$this->OfferingsStudent->save($data);
这将直接保存到表中。您无需为此创建模型。
修改强>
添加多个:
$data = array(
'OfferingStudent' => array(
array(
[offering_id] => 35
[owing] => 209.00
[student_id] => 31
),
array(
[offering_id] => 32
[owing] => 100
[student_id] => 30
)
)
);
$this->OfferingsStudent->saveAll($data);
答案 1 :(得分:0)
Scoot Harwell在Edit中生成的数组很适合制作saveAll,但执行操作的代码必须是:
$this->OfferingsStudent->saveAll($data['OfferingStudent']);
我遇到同样的问题,经过很多次后终于找到了。