Yii Gii如何检测MANY_MANY

时间:2012-01-29 15:18:46

标签: sql database foreign-keys yii

我的数据库结构有几个MANY_MANY链接。但是Gii(在我的例子中是giix)并不总是将它们生成为MANY_MANY,而是生成带有联合表的HAS_MANY。

是否有规则确保Gii能够建立正确的关系?它是否看到列的名称?表的名称?指标?外键名称?如果联合表中还有其他列,该怎么办?

2 个答案:

答案 0 :(得分:2)

Gii实际上会检查每个表以查看是否存在连接表(请参阅gii / generators / model中的ModelCode::isRelationTable())。如果出现以下情况,它会将表检测为连接表:

  • 该表有2列
  • 两列都是外键
  • 外键指向不同的表
然后,Gii在参与模型之间创建了多对多关系。

答案 1 :(得分:0)

Gii在模型中创建许多一对多(1:n)关系 self :: BELONGS_TO + self :: HAS_MANY self :: MANY_MANY需要手动输入