我使用Cookbook中描述的hasMany through方法定义的两个模型Invoice
和Position
之间存在多对多关系。
现在,当我创建一个发票时,我想在一个save()
- 操作中将多个位置保存到该发票。像这样:
$data = array(
'Invoice' => array(
// invoice stuff
),
'InvoicesPosition' => array(
[0] => array(
// additional meta information
'Position' => array(
// position stuff
// ...
),
),
[1] => array(
// ...
'Position' => array(
// position stuff
// ...
),
),
// and so on
),
);
$this->Invoice->saveAll($data, array('deep' => true));
结果应该是一个新的发票,其中2个位置链接到它 (这意味着发票表中有1个新记录,位置表中有2个新记录,连接表中有2个新记录)。
Cake的内置方法有可能吗?或者我是否必须覆盖该模型的saveAll()
- 方法?
答案 0 :(得分:1)
在saveAll()方法中使用'deep' => true
选项。
$this->Invoice->saveAll($data, array('deep' => true));