0

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

Groups belongsTo Users
Users hasMany Groups

现在由于某种原因这样做之后,我不断收到以下错误:

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

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

谢谢

4

1 回答 1

0

也许我误解了你想要你的联想,但我想:

一个用户属于一个组

一个组有很多用户

示例用户模型:

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

示例组模型:

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

    

您的用户表将需要一个group_id字段。

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

无论哪种方式,我都强烈建议您查看有关关联的 Cakebook 页面:将模型链接在一起

于 2013-10-09T22:05:19.150 回答