0
所以,在我的项目中有组和用户。每个用户都属于一个组,其中一个用户也是该组的管理员。我一直在努力弄清楚如何映射这些关系。CakePHP 2.0模型关系(组和用户)
目前,随着设置,我正在创建一个表单,将创建一个新的组,同时它的管理员(所以也是一个新用户)。
我想知道如何设置,所以A-我可以正确保存用户和组,并且B-因此在表单中用户和组信息都可以验证并显示错误。
这是我的数据库表
组表的当前布局:
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned DEFAULT NULL,
`name` varchar(60) NOT NULL,
`account_active` tinyint(1) DEFAULT NULL,
`create_date` date NOT NULL,
`last_modified` date NOT NULL,
`delete_date` date DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `groups_fk_admin` (`administrator`),
CONSTRAINT `groups_fk_admin` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
而且用户表:
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`group_id` int(10) unsigned DEFAULT NULL,
`email` varchar(200) NOT NULL,
`password` varchar(40) NOT NULL,
`first_name` varchar(45) NOT NULL,
`last_name` varchar(45) NOT NULL,
`create_date` date NOT NULL,
`last_modified` date NOT NULL,
`delete_date` date DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
KEY `users_group_id_fk` (`group_id`),
CONSTRAINT `users_group_id_fk` FOREIGN KEY (`group_id`) REFERENCES `groups` (`id`)
然后我的模型目前设置像....
组别型号:
个public $hasMany = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'dependent' => false,
)
);
public $belongsTo = array(
'Administrator' => array(
'className' => 'User',
'foreignKey' => 'user_id',
)
);
用户型号:
public $hasMany = array(
'Admin' => array(
'className' => 'Group',
'foreignKey' => 'user_id',
'dependent' => false,
),
);
public $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id',
)
);
谢谢您的帮助!如果我可以提供更多信息,请告诉我。
这很有道理......它比我想要完成的要简单得多。谢谢! – letsgettechnical 2012-03-16 22:34:54
如果您计划让更多这些角色影响某些模型(如本例中的组),则可以考虑创建一个“关系”模型作为示例。 =) – pbond 2012-03-17 00:08:47