我的问题是如何在Yii模型中建立这种关系:
表格分类帐:
|id|target_type|target_id|amount|
示例数据如下:
|1|shop|20|100.00|
|2|member|30|99.50|
如您所见,我使用target_type作为链接到哪个表的指示符,而target_id是链接的外表的id。
我试过这个但没有工作
'shop' => array(self::HAS_ONE, 'shop', 'target_id', 'condition'=>'target_type=shop'),
答案 0 :(得分:0)
试
public function relations() {
return array(
'shop' => array(self::HAS_ONE, 'Shop', 'target_id', array(
'condition' => 'ledger.target_type = :type',
'params' => array(':type'=>'shop')
)),
);
}
答案 1 :(得分:0)
我最终得到的解决方法如下:
return array(
'shop' => array(self::BELONGS_TO, 'Shop', 'target_id'),
'member' => array(self::BELONGS_TO, 'Member', array('target_id'=>'user_id')),
);