【发布时间】:2016-02-02 03:13:31
【问题描述】:
晚上好,
在此页面 (http://www.yiiframework.com/doc/guide/1.1/en/database.arr#relational-query-with-through) 描述了如何使用“通过”为特定组的所有用户获取所有 cmets:
class Group extends CActiveRecord
{
...
public function relations()
{
return array(
'roles'=>array(self::HAS_MANY,'Role','group_id'),
'users'=>array(
self::HAS_MANY,'User',array('user_id'=>'id'),'through'=>'roles'
),
'comments'=>array(
self::HAS_MANY,'Comment',array('id'=>'user_id'),'through'=>'users'
),
);
}
}
我怎样才能完全相反?即获取发表特定评论的用户组(基本上是评论模型)。
到目前为止,我什至无法访问“角色”表:
'user' => array(self::BELONGS_TO, 'User', 'user_id'),
'roles'=>array(self::HAS_MANY, 'Role', array('id'=>'user_id'), 'through' => 'user') // shouldn't it join User.id to Role.user_id ?
它引发以下错误:'未找到列:'where 子句'中的 1054 未知列'user.user_id'。而且它似乎与第一行有关,而不是第二行......
有什么想法吗?
真诚地, 百度云
【问题讨论】:
-
可以尝试切换
array('user_id' => 'id')? -
请提及您的模型结构、它们的字段和它们的外键关系。
-
@SiZE 不起作用
-
@AnamikaShrivastava 模型结构及其字段显示在链接中
-
@Apidcloud 你会创建外键吗?