2011-07-05 59 views
2

我正在CakePHP中开发一个认证系统。我有两种用户;申请人和雇主。我对他们每个人的用户表和控制器,模型和视图:CakePHP用户级别?

controllers: 
    users_controller.php 
    applicants_controller.php 
    employers_controller.php 

models: 
    user.php 
    applicant.php 
    employer.php 

views: 
    applicants: 
     register.ctp 
    employers: 
     register.ctp 

这样,当我要注册我用的是申请人控制器,模型中的申请人和注册视图。对于雇主也是一样。但我正在重复自己。什么是实施这个最好的方法?我应该使用ACL吗?

感谢

回答

2

如果这是你唯一的区别我会去的只有一个用户表,只有设置相应的标志。

为此,您需要另外2个表字段applicantemployee。只需使用tinyint(1),Cake就可以将它用作布尔值。

在您的AppController中,您可以检查(在与AuthComponent进行身份验证之后)这两个值并允许或拒绝操作。

+0

感谢哥们。这是一个很好的提示,但是如果将来我的应用程序必须支持像OpenID这样的多种登录协议呢?这是我想分割表格的原因之一,但到目前为止,我的实施还不够好。我应该怎么做才不违反DRY原则? – ivantxo

+0

我不明白为什么要为多个登录协议拆分表。但是如果你想保持当前的实现,你应该阅读关于组件(控制器共享的代码)和行为(代码共享的模型)的手册。这应该让你走上正轨。 – Tim