【问题标题】:Saving to a model related to another instance of this model in CakePHP 1.3在 CakePHP 1.3 中保存到与该模型的另一个实例相关的模型
【发布时间】:2011-06-16 02:47:04
【问题描述】:

我对蛋糕比较陌生,我不得不再次研究它是如何做事以获得我想要的东西的。我真的很想找出做我需要的“正确”方式。

我正在构建一个“绩效”系统,每个月都会使用该系统来检查某人在上个月实现目标的情况。

本月的复习设定了新的目标,并记录了上个月的结果。

我有一个 Review 模型,它有很多目标。

在本月审核的编辑视图中,我显示了上个月审核的一些数据以及与上个月审核相关的目标中的一些字段。

我需要保存上个月每个目标的结果,并且也能够设置本月目标 - 所以我将数据保存到与当前审核相关的目标以及另一个目标。

当我尝试保存“不相关”目标时,CakePHP 会强制 review_id 成为当前目标的 id——我什至尝试在 Review::afterSave 回调中循环并检查每个 review_id——尽管我可以发送正确的 review_id值到 Goal->save,数据库仍然会使用当前的 Review id 进行更新,而不是我设置的那个。

谁能告诉我保存到与当前模型的另一个实例相关的模型的“蛋糕”方式?这甚至可能吗?

【问题讨论】:

    标签: models cakephp-1.3


    【解决方案1】:

    好的,这可能不是最有效的方法 - 但我快到最后期限了。

    因此,我没有检索上个月的 Review,而是创建了另一个“hasMany”关系,使用具有子选择的 finderQuery 来查找上个月查询的 ID,并使用它来选择具有该 review_id 的目标。它使用{$__cakeID__$} 来查找当前评论的 ID,如下所述:

    http://book.cakephp.org/view/1039/Associations-Linking-Models-Together#hasMany-1043

    因为一切都以 Cake 理解的方式相互关联,所以一切都会在 saveAll 上自动更新。

    这意味着我有一个荒谬的子选择查询,将过去几个月的目标与本月的回顾相关联,但它有效。

    有一天我会弄清楚如何优化它,这样它就不会让我的数据库崩溃......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 2015-07-29
      相关资源
      最近更新 更多