使用复合键对关系进行建模


Model relation with composite key

我需要帮助来创建与具有复合键的表的模型关系。我有以下两种型号:

ModelOne (
    id, PRIMARY KEY
    parent_id,
    parent_type,
    ...
)

ModelTwo (
    parent_type,
    parent_id,
    ...
)

在 ModelTwo 中,我已经覆盖了主键:

public function primaryKey()
    {
        return array('parent_type', 'parent_id');
    }

如何在模型一中定义关系以获取相关的模型二?(1 对 1 关系)

我想你需要这个:

public function relations() {   
  return array(
    'two' => array(self::BELONGS_TO, 'ModelTwo', '', 'on'=>'t.parent_type=modelTwo.parent_type'),
  );
}