我是cakephp的新手,对php有一定的经验。Ive使用cakephp 1.3,am使用cakephp 2.06 atm。
我有一个问题困扰着我;
我想为3种类型的用户创建一个用户注册系统:
考虑到所有3个用户都可能有不同的字段,那么用cakephp做这件事的最佳方法是什么?
发布于 2012-02-28 16:16:55
您至少希望将所有登录信息(用户名/密码)保存在users表中。假设每种用户类型都有一些重叠的数据,那么保留user表中的所有字段(或相关的“概要”表)可能是很好的。
如果您想分离数据,可以使用profile_customers、profile_retailers...etc。但只有当数据几乎完全不同的时候,我才会这么做--我想大多数人都会有“电话”、“电子邮件”……等等。
要想为每种类型创建不同的注册表单,最简单的方法就是根据用户类型链接到您的注册表单:
http://www.mysite.com/users/register/customer然后,在您的控制器中:
function register($type = null) {
//...
switch($type) {
case 'customer':
$this->render('registration_customer');
break;
case 'retailer':
$this->render('registration_retailer');
break;
case 'manufacturer':
$this->render('registration_manufacturer');
break;
}
//...然后,您可以为每个注册页拥有一个单独的CTP文件。或者,如果它们重叠很多,您也可以将一个变量从控制器传递到视图,并使用if语句只显示相关字段。
有很多方法可以做到这一点,但你问题的主要答案是--除非它们在你想要存储的数据中有很大的变化,也许最好将它们保存在同一个表中--而且至少要将用户名/密码或电子邮件/密码保留在用户表中。
https://stackoverflow.com/questions/9484517
复制相似问题