2011-07-05 64 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