0

对于这三个表,表XXX有两列复合PK:

Table XXX:
 - XXX_id_1
 - XXX_id_2
 - name

Table YYY:
 - YYY_id
 - name

Table XXX_has_YYY:
 - X_id
 - Y_id
 - A_id

如何在 Yii 的 ORM 中定义这种关系?

public function relations() {
  return array(
      'YYY' => array(self::MANY_MANY, 'YYY',
          'XXX_has_YYY(XXX_id_1, XXX_id_2, YYY_id)'),
  );
}
4

2 回答 2

2

请阅读文档。

请注意,对于复合外键,它们可以一起列出,用逗号分隔或指定为 array('key1','key2') 格式的数组。如果您需要指定自定义 PK->FK 关联,您可以将其定义为 array('fk'=>'pk')。对于复合键,它将是数组('fk_c1'=>'pk_с1','fk_c2'=>'pk_c2')。

此外,第二个参数指的是相关对象所属的活动记录类的名称。因此,您的关系应如下所示:

'XXX_has_YYY_relation_name' => array(self::MANY_MANY, XXX_has_YYY, array(XXX_id_1, XXX_id_2, YYY_id) ),
于 2012-06-20T08:01:33.210 回答
1

您可以使用CManyManyRelationON的属性

于 2012-06-19T19:55:07.160 回答