Yii relations 写法
yii的relations里self::BELONGS_TO默认是用当前指定的键跟关联表的主键进行join,例如:
Post
return array(
'reply' => array(self::BELONGS_TO, 'BookPostReply', 'postid'),
);
默认生成的sql类似 on id = postid,id是本表的主键,postid是表BookPostReply的一个字段(主键)
但是需要生成 on BookPostReply.postid = t.postid
关联非主键字段
方法一,改成如下:
return array(
'reply' => array(self::BELONGS_TO, 'BookPostReply', '', 'on' => 't.postid=reply.postid'),
);
方法二:
array(self::BELONGS_TO,'对应的模型',array('本模型的外键'=>'对应模型的主键'))
这样也可以定义的,只要明确指定主键和对应表的外键就可以了。
官方开发指南里是这样写的:
array('fkc1'=>'pkc1','fkc2'=>'pkc2')