用户注册cakephp 2?

时间:2012-02-28 15:16:05

标签: php cakephp user-registration

我是cakephp的新手,并有一些PHP的经验。我使用了cakephp 1.3,并使用了cakephp 2.06 atm。

我有一个问题困扰着我;

我想为3种类型的用户创建用户注册系统:

  • 客户
  • 零售商
  • 制造商

鉴于所有3个用户可能有不同的字段,最好的方法是使用cakephp吗?

  1. 创建用户表中所需的所有字段并使用该字段(带有用于设置用户类型的字段),我可以在其中检查并显示/显示所需数据。

  2. 为每个表创建3个表,并使用外键链接它们。 (似乎很复杂)

1 个答案:

答案 0 :(得分:1)

您至少要在users表中保留所有登录信息(用户名/密码)。假设每个用户类型的数据有些重叠,那么您可以将所有字段保存在用户表(或相关的“配置文件”表)中。

如果您想分开数据,可以profile_customersprofile_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语句仅显示相关字段。

有很多方法可以做到这一点,但你问题的主要答案是 - 除非你想要存储的数据急剧变化,最好将它们保存在同一个表中 - 并且至少保持用户表中的用户名/密码或电子邮件/密码。