【发布时间】:2020-06-19 11:39:52
【问题描述】:
发票和项目之间存在多对多关系。一个项目可以在同一张发票中出现多次,但金额不同(例如,当同一服务在一个月内多次使用时)。
我希望我可以通过在保存时在发票的“项目”元素中包含以下内容来创建此关联(请参阅https://book.cakephp.org/3/en/orm/saving-data.html#saving-belongstomany-associations):
Array
(
[0] => Array
(
[id] => 1
[_joinData] => Array
(
[amount] => 5338.29
)
)
[1] => Array
(
[id] => 1
[_joinData] => Array
(
[amount] => 5988.53
)
)
[2] => Array
(
[id] => 1
[_joinData] => Array
(
[amount] => 6023.40
)
)
)
在上面的示例中,我希望的结果是在连接表invoices_items 中创建了三行。发票已正确保存,但连接表中只创建了一行。
我尝试将 saveStrategy 设置为 append 的两个关联(我不确定这是做什么的),但这没有帮助:
$this->belongsToMany('Invoices', [
'saveStrategy' => 'append'
]);
是否可以开箱即用地实现这种行为,还是我需要创建一些更自定义的东西,比如专门跟踪这些关系的新模型?如果更多代码有助于阐明我想要实现的目标,请告诉我。
谢谢!
【问题讨论】:
-
我认为编组器仍然无法处理这个问题:stackoverflow.com/questions/56154557/…。
-
谢谢@ndm - 没有发现这个非常相似的问题
标签: mysql cakephp-3.0