2010-09-22 15 views
1

在CakePHP中,我试图构建一个$ hasOne关系,但我无法将外键添加到表中(出于传统原因)。有什么办法可以创建一个连接表(object1_object2)并将它们链接在一起吗?我想利用Cake的强大的对象关系功能,所以如果有一种方法,我可以在整个模型中使这个自定义关联永久化,而不必为每个find()构建一个自定义的$ options数组,这非常棒。 (也许模型的initalize()中有bindModel?)CakePHP - 自定义hasOne对象关联 - 使用连接表而不是表中的外键?

谢谢!

回答

2

如果你想使用连接表,我相信你将不得不使用hasAndBelongsToMany(HABTM)关系,即使你永远不会有'很多'。数据显然会与标准的hasOne关系有所不同,但至少这种关系是存在的。

使用hasOne关系的'conditions'字段可能会有一种解决方法,但我怀疑你仍然必须指定一个外键(或者它将默认为'object2_id'),它可能仍然会尝试根据该外键进行连接。