关于联表查询与外键的问题(已解决,解决办法请看二楼) [ 新手入门 ]
今天碰到一个问题
现在有两个表,user表和info表,我要查询用户的email,而email字段在info表中,于是我就在userModel
中写了个relations
'info'=>array(self::BELONGS_TO,'Info','userid')
其中user的主键为id
,info表中的主键为userid
controller
中调用语句User::model()->with('info')->findAll();
出错,错误信息是这样的:
AR类 "User" 的关联 "info" 设定了一个无效的外键 "userid"
是不是在关联表时必须设置外键?还是我的relations
写的有错误?
请大侠指教一下。
(解决办法请看二楼)
共 3 条回复
-
benlee7777 回复于 2012-06-18 14:57 举报
已解决,谢谢7415106群众的舰长四弟的帮助
可以不通过外键设置,使用on也可,具体的语句如下public function relations() { return array( 'info'=>array(self::HAS_ONE,'Userinfo','','on'=>'ui.userid=t.id','alias'=>'ui'), ); }
在
controller
里面使用$model->info->email
即可。
benlee7777
注册时间:2012-02-16
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱65
- 威望0
- 积分65