CakePHP 中的数据应如何格式化以保存与 saveAll() 的三级关联?

发布于 2024-11-06 09:34:53 字数 293 浏览 6 评论 0原文

我正在尝试构建一个“添加事件”页面。您可以添加多个“计划” - 每个计划都会在您设置的创建“日期”的日期/重复选项上运行计算。

-Event hasMany Schedule
-Schedule hasMany Date
-Schedule belongsTo Event
-Date belongsTo Schedule

问题是 - 数据需要如何格式化和/或如何读取字段名称以便能够 saveAll() 数据,以便日期也被保存。我目前正在使用它,因此它可以保存事件和时间表...但我无法让它也保存日期。

I'm trying to build an "Add an Event" page. You can add multiple "Schedules" - each of which will have calculations run on the date(s) / repeat options you set to create "Dates".

-Event hasMany Schedule
-Schedule hasMany Date
-Schedule belongsTo Event
-Date belongsTo Schedule

The question is - how does the data need to be formatted and/or how to the field names need to read in order to be able to saveAll() the data so Date(s) are also saved. I have it currently working so it saves the Event and the Schedule... but I can't get it to also save the Date(s).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤独患者 2024-11-13 09:34:54

saveAll 仅适用于直接关联的模型。来自 CakePHP 文档:

使用 saveAll() 保存相关数据仅适用于直接关联的模型。如果成功,last_insert_id()将被存储在相关模型的id字段中,即$this->RelatedModel->id。

http://book.cakephp.org/view/1031/Saving-Your-Data

saveAll only works on models that are directly associated. From the CakePHP doc:

Saving related data with saveAll() will only work for directly associated models. If successful, last_insert_id()'s will be stored in the related models id field, i.e. $this->RelatedModel->id.

http://book.cakephp.org/view/1031/Saving-Your-Data

缪败 2024-11-13 09:34:53

更新:请参阅标记为“答案”的答案。这个答案已经过时了。


根据这个 stackoverflow 答案

即 - 必须手动执行,而不是在同一个“saveAll()”中。

UPDATE: See answer marked as 'answer'. This answer is out of date.


It appears it's not possible according to this stackoverflow answer.

ie - have to do it manually, not in the same "saveAll()".

西瓜 2024-11-13 09:34:53

实际上,从 CakePHP 2.1 开始,您可以使用 saveAll() 来完成。模型中的深度并不重要。在这里您可以看到新功能。

http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-1.html#model-saveall-model-savelinked-model-validatelinked

Actually, since CakePHP 2.1, you can do it with saveAll(). Doesn't matter the deep level you have within your models. Here you can see the new features.

http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-1.html#model-saveall-model-saveassociated-model-validateassociated

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文