Yii 使用两个不同的表登录不同的 RBAC


Yii Use two different tables for login with different RBAC

我想使用两个不同的表进行登录。一个用于用户,一个用于员工登录。目前只有一个表"用户",我正在使用 yii 内置的 RBAC 并且一切正常。现在我想添加第二个表"staff",以便在没有 RBAC 的情况下登录。因此,在登录期间,它将首先检查"用户"表中的用户名,如果不存在,它将检查"员工"表中的用户名,然后检查密码。我能够成功执行登录逻辑。但现在的问题是RBAC。"AuthAssignment"表将用户ID作为"users"表的外键,因此如果员工ID在"users"表中具有相应的ID,则系统将根据"users"表的角色提供访问权限。如果从员工表登录,我该如何避免它。是否可以为"员工"表赋予不同的角色,或者是否可以不为"员工"表使用角色。

请帮忙。提前谢谢。

最好有一个登录表(因为 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',
    ];
}