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