2015-01-08 45 views
0

我想使用兩個不同的表進行登錄。一個用於用戶,一個用於工作人員登錄。目前只有一個'用戶'表,我使用的是基於RBAC的yii,並且一切正常。現在我想爲沒有RBAC的登錄添加第二個表「staff」。因此,在登錄時,它將首先檢查'users'表中的用戶名,如果它不存在,那麼它將檢查'staff'表,然後檢查密碼。我能夠成功地完成登錄的邏輯。但現在的問題是RBAC。 「AuthAssignment」表具有userid作爲'用戶'表的外鍵,所以如果員工ID在'用戶'表中具有相應的ID,則系統將根據'用戶'表的角色提供訪問。如果登錄來自職員表,我如何避免它。是否可以爲「員工」表賦予不同的角色,或者是否有可能不將角色用於「員工」表。Yii使用兩個不同的表來登錄不同的RBAC

請幫忙。提前致謝。

+0

爲什麼要2個表? – Naruto

+0

@Naruto職員表將有更多的條目,可能會或可能沒有用戶名和密碼。它也只用在一個模塊中,所以我想分離它。 – user1690835

回答

0

最好有一張登錄表(由於FK和關係)。

[user] 

ID | username | password | type 

不是讓員工和用戶信息表,不同的領域:

[staff] 

ID | user_id | workstation_id | favorit_tool | ... 

[user_info] 

ID | user_id | name | surname | address | ... 

比Yii中,你可以做關係:

[userModel] 

public function relations() { 
    return [ 
     'stuff' => [self::BELONGS_TO, 'stuff', 'user_id', 'condition' => 'type = '.static::TYPE_STUFF], 
     'info' => [self::BELONGS_TO, 'user_info', 'user_id', 
    ]; 
} 
相關問題