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

时间:2015-01-08 11:58:09

标签: php yii

我想使用两个不同的表进行登录。一个用于用户,一个用于员工登录。目前只有一个表'用户'我正在使用yii内置的RBAC,一切正常。现在我想添加第二个表' staff'没有RBAC登录。因此,在登录期间,它将首先检查'用户'中的用户名。桌子,如果不在那里,那么它将检查工作人员'表然后检查密码。我能够成功登录逻辑。但现在问题是RBAC。 " AuthAssignment" table具有userid作为' users'的外键。表,如果员工ID在'用户'中有相应的ID然后系统将根据“用户”的角色提供访问权限。表。如果登录来自员工表,我该如何避免它。是否有可能为员工提供不同的角色?表格或是否可以不使用“工作人员”的角色。表

请帮忙。提前致谢。

1 个答案:

答案 0 :(得分: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',
    ];
}