如果我在HTBTM关系中有以下数据库表名:
**dressess**
id
**dressess_categories**
id
dress_id
category_id
**categories**
id
如何在 dressess_categories 表中为HABTM关系创建数据库表名称,例如:
**dressess_categories**
id
**colors_dress_categories** <--- It is named right?
id
dress_category_id <--- It is named right?
color_id
**colors**
id
提前致谢。
答案 0 :(得分:1)
首先,连接表需要按字母顺序排列模型名称,以便CakePHP自动识别它们:
dresses_categories /* incorrect */
categories_dresses /* correct */
现在针对手头的问题:如果我正确理解了您的问题,您是否尝试在Color
模型和用于不同HABTM关系的连接表之间创建HABTM关联?这是不可能的。 (或者如果是的话,它将是一个蛋糕 - 黑客 - 一个)。
首先,停止考虑数据库表之间关系的关系。在CakePHP模型之间定义关系,并且表驱动它们。为完成这项任务,您需要做的是制作四个模型:
Dress
Category
DressCategory
Color
定义如此的关系:
Dress -> hasMany -> DressCategory
Category -> hasMany -> DressCategory
DressCategory -> belongsTo -> Category, Dress
DressCategory -> HABTM -> Color
Color -> HABTM -> DressCategory
带有适当外键的五个表:
dresses
-------
id
categories
----------
id
dress_categories
----------------
id
dress_id
category_id
colors
------
id
colors_dress_categories
-----------------------
id
color_id
dress_category_id