Orm CakePHP 2.0模型关系(组和用户)
因此,在我的项目中有组和用户。每个用户都属于一个组,其中一个用户也是该组的管理员。我一直在努力找出如何映射这些关系 目前,通过设置,我正在创建一个表单,该表单将同时创建一个新组及其管理员(以及一个新用户) 我想知道如何设置它,以便A-我可以正确保存用户和组,B-以便在表单中验证用户和组信息并显示错误 这是我的数据库表的当前布局 分组表:Orm CakePHP 2.0模型关系(组和用户),orm,cakephp-2.0,Orm,Cakephp 2.0,因此,在我的项目中有组和用户。每个用户都属于一个组,其中一个用户也是该组的管理员。我一直在努力找出如何映射这些关系 目前,通过设置,我正在创建一个表单,该表单将同时创建一个新组及其管理员(以及一个新用户) 我想知道如何设置它,以便A-我可以正确保存用户和组,B-以便在表单中验证用户和组信息并显示错误 这是我的数据库表的当前布局 分组表: `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_id` int(10) unsigned DEFAUL
`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',
)
);
谢谢你的帮助!如果我能提供更多信息,请告诉我。集团有很多用户
用户所属组
只需向Users表中添加另一列,名为is_admin或其他任何内容,该列的值为它所属组的ID
对于某些操作,您只需检查它是否通过了特定条件。因此,如果要检查用户是否是组4的管理员,则必须检查其is_admin id是否等于4。对于“普通”用户,可以设置为0
作为用户的属性,管理员不应在您与用户的数据库关系中声明,因为用户拥有多个admin和一个属于admin的组,admin本身不是一个模型。它是用户的一个属性,一个角色。这很有意义。。。。这比我想完成的要简单得多。谢谢如果您计划制作更多这些角色,这些角色会影响某些模型,例如本例中的组,您可以考虑创建一个“关系”模型