在关联中保存数据 table (belonsToMany) Cakephp 3
Save data in association table (belonsToMany) Cakephp 3
我有活动和行动。每个广告系列可以有无限的操作(甚至可以重复)。
Cakephp 文档说您可以保存与 actions._ids 的关联,但我对此有疑问。每个 campaign_action 都有一个持续时间。然后,如果我使用 actions._ids 我可以毫无问题地保存关系,但我无法在每个 campaign_duration.
中保存持续时间
现在我正在保存数据宽度 actions._joinData.action_id 和 actions._joinData.duration 并且有效!但问题是 cakephp 创建了一个 新操作 并保存了与创建的新操作的关系。示例:
我需要在活动 1 中保存动作 ID 3 和 5 宽度分别为 25 秒和 40 秒。
BBDD 中的插入应为 campaign_id 1 - action_id 3 - 持续时间 25 和 campaign_id 1 - action_id 5 - 持续时间 40。
现在有了 _joinData,它为我节省了:新动作宽度 id 8(例如)和新动作宽度 id 9(例如)并且在 campaign_actions 中:campaign_id 1 - action_id 8 -持续时间 25 和 campaign_id 1 - action_id 9 - 持续时间 40
我该怎么做?
如果没有蛋糕,我是否必须手动完成?
谢谢。
编辑:
这是我要保存的数据(仅限操作):
"actions" => array:1 [▼
0 => array:1 [▼
"_joinData" => array:3 [▼
"campaign_action_name" => "A"
"action_id" => "3"
"duracion" => "4"
]
]
]
这是我的结果实体:
"actions": array:1 [▼
0 => Action {#236 ▼
+"_joinData": CampaignsAction {#266 ▼
+"campaign_action_name": "A"
+"action_id": 3
+"duracion": 4.0
+"[new]": true
+"[accessible]": array:6 [▶]
+"[dirty]": array:3 [▶]
+"[original]": []
+"[virtual]": []
+"[errors]": []
+"[invalid]": []
+"[repository]": "CampaignsActions"
}
+"[new]": true // HERE IS THE PROBLEM I THINK
+"[accessible]": array:21 [▶]
+"[dirty]": array:1 [▶]
+"[original]": []
+"[virtual]": []
+"[errors]": []
+"[invalid]": []
+"[repository]": "Actions"
}
]
我认为你的数据结构在打补丁之前应该是这样的:
actions => [
0 => [
id => 3,
_joinData => [
duration => 40,
],
],
1 => [
id => 5,
_joinData => [
duration => 25,
],
],
]
尝试用这样的数据修补您的活动实体;如果它不起作用,请使用您要修补的确切数据和生成的实体更新问题。
我有活动和行动。每个广告系列可以有无限的操作(甚至可以重复)。
Cakephp 文档说您可以保存与 actions._ids 的关联,但我对此有疑问。每个 campaign_action 都有一个持续时间。然后,如果我使用 actions._ids 我可以毫无问题地保存关系,但我无法在每个 campaign_duration.
中保存持续时间现在我正在保存数据宽度 actions._joinData.action_id 和 actions._joinData.duration 并且有效!但问题是 cakephp 创建了一个 新操作 并保存了与创建的新操作的关系。示例:
我需要在活动 1 中保存动作 ID 3 和 5 宽度分别为 25 秒和 40 秒。
BBDD 中的插入应为 campaign_id 1 - action_id 3 - 持续时间 25 和 campaign_id 1 - action_id 5 - 持续时间 40。 现在有了 _joinData,它为我节省了:新动作宽度 id 8(例如)和新动作宽度 id 9(例如)并且在 campaign_actions 中:campaign_id 1 - action_id 8 -持续时间 25 和 campaign_id 1 - action_id 9 - 持续时间 40
我该怎么做?
如果没有蛋糕,我是否必须手动完成?
谢谢。
编辑:
这是我要保存的数据(仅限操作):
"actions" => array:1 [▼
0 => array:1 [▼
"_joinData" => array:3 [▼
"campaign_action_name" => "A"
"action_id" => "3"
"duracion" => "4"
]
]
]
这是我的结果实体:
"actions": array:1 [▼
0 => Action {#236 ▼
+"_joinData": CampaignsAction {#266 ▼
+"campaign_action_name": "A"
+"action_id": 3
+"duracion": 4.0
+"[new]": true
+"[accessible]": array:6 [▶]
+"[dirty]": array:3 [▶]
+"[original]": []
+"[virtual]": []
+"[errors]": []
+"[invalid]": []
+"[repository]": "CampaignsActions"
}
+"[new]": true // HERE IS THE PROBLEM I THINK
+"[accessible]": array:21 [▶]
+"[dirty]": array:1 [▶]
+"[original]": []
+"[virtual]": []
+"[errors]": []
+"[invalid]": []
+"[repository]": "Actions"
}
]
我认为你的数据结构在打补丁之前应该是这样的:
actions => [
0 => [
id => 3,
_joinData => [
duration => 40,
],
],
1 => [
id => 5,
_joinData => [
duration => 25,
],
],
]
尝试用这样的数据修补您的活动实体;如果它不起作用,请使用您要修补的确切数据和生成的实体更新问题。