提问者:小点点

在将外键列手动添加到数据库表后,cakephp无法检测模型关联


我在CakePHP应用程序中有两个模型:用户和组。起初,我没有两者之间的关系。现在在数据库表组中,我手动添加列user_id,这样现在我在两者之间有以下关系:

Groups belongsTo Users
Users hasMany Groups

现在,由于某种原因,我一直得到以下错误:

1054: Unknown column 'Group.user_id' in 'field list'

我试着运行CakePHP的bake命令,看看Cake是否会自动检测到我的两个模型之间的关系。当我尝试烘焙用户模型时,CakePHP甚至没有检测到用户和组之间存在hasMany关系。你知道为什么会发生这种情况,我怎样才能解决这个问题吗?

非常感谢。


共1个答案

匿名用户

也许我误解了你想要什么样的联想,但我可以想象:

用户属性到组

一个组有许多用户

示例用户模型:

class User extends AppModel {
    public $belongsTo = array(
        'Group' => array(
            'className' => 'Group',
            'foreignKey' => 'group_id'
        )
    );
}

示例组模型:

class Group extends AppModel {
    public $hasMany = 'User';
} 

    

用户表将需要一个组id字段。

所有这些都假设您希望每个用户有一个组。如果您希望用户拥有多个组,那么您可能希望在用户和组之间定义HABTM关系,或者研究访问控制列表可能会为您指明更好的方向(我还没有利用Cake的ACL组件)。

不管怎样,我强烈建议查看关于关联:将模型联系在一起的蛋糕书页面。