我是cakephp的新手,并有一些PHP的经验。我使用了cakephp 1.3,并使用了cakephp 2.06 atm。
我有一个问题困扰着我;
我想为3种类型的用户创建用户注册系统:
鉴于所有3个用户可能有不同的字段,最好的方法是使用cakephp吗?
创建用户表中所需的所有字段并使用该字段(带有用于设置用户类型的字段),我可以在其中检查并显示/显示所需数据。
为每个表创建3个表,并使用外键链接它们。 (似乎很复杂)
答案 0 :(得分:1)
您至少要在users表中保留所有登录信息(用户名/密码)。假设每个用户类型的数据有些重叠,那么您可以将所有字段保存在用户表(或相关的“配置文件”表)中。
如果您想分开数据,可以profile_customers
,profile_retailers
等。但我只会这样做,如果几乎所有不同的数据 - 我认为大多数将有'电话','电子邮件'......等等
为每种类型创建不同的注册表单时,最简单的方法是根据用户类型链接到您的注册表单:
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语句仅显示相关字段。
有很多方法可以做到这一点,但你问题的主要答案是 - 除非你想要存储的数据急剧变化,最好将它们保存在同一个表中 - 并且至少保持用户表中的用户名/密码或电子邮件/密码。