0

これら 3 つのテーブルの場合、テーブル XXX には 2 つの列の複合 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') として定義できます。複合キーの場合は、array('fk_c1'=>'pk_с1','fk_c2'=>'pk_c2') になります。

また、2 番目の引数は、関連オブジェクトがあるアクティブなレコード クラスの名前を参照します。したがって、関係は次のようになります。

'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 に答える