【问题标题】:CakePHP - Custom hasOne Object Association - Using a Join Table instead of in-table foreign keys?CakePHP - 自定义 hasOne 对象关联 - 使用联接表而不是表内外键?
【发布时间】:2011-04-15 19:35:41
【问题描述】:

在 CakePHP 中,我正在尝试建立 $hasOne 关系,但我无法向表中添加外键(出于遗留原因)。有什么办法可以创建一个连接表(object1_object2)并将它们链接在一起吗?我想利用 Cake 强大的对象关系功能,所以如果有一种方法可以使这个自定义关联在整个模型中永久存在,而无需总是为每个 find() 构建自定义 $options 数组,那就太好了。 (也许模型的 initalize() 中有一个 bindModel?)

谢谢!

【问题讨论】:

    标签: php cakephp data-modeling cakephp-1.3 object-relationships


    【解决方案1】:

    【讨论】:

    • 这看起来像是更标准的对象关系——我需要在不使用 Cake 需要的外键的情况下建立自定义关系。我想为 hasOne 关系使用 Join Table。
    【解决方案2】:

    如果您想使用连接表,我相信您将不得不使用 hasAndBelongsToMany (HABTM) 关系,即使您永远不会拥有“many”。数据的行为显然与标准的 hasOne 关系不同,但至少该关系会存在。

    可能有一种方法可以使用 hasOne 关系的“条件”字段,但我怀疑您仍然必须指定一个外键(或者无论如何它将默认为“object2_id”)并且它可能仍会尝试根据该外键进行连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多