如何在RBAC中的Yii2和DbManager中获得specefic角色的用户?
请介绍一些用于用户管理和角色管理的API。
我搜索并阅读 Yii2指南 但我没有找到任何解决方案。
我写了这个函数,可以添加到User类。
/**
* Finds all users by assignment role
*
* @param \yii\rbac\Role $role
* @return static|null
*/
public static function findByRole($role)
{
return static::find()
->join('LEFT JOIN','auth_assignment','auth_assignment.user_id = id')
->where(['auth_assignment.item_name' => $role->name])
->all();
}
自Yii版本2.0.7起, DbManager
和 ManagerInterface
它实现了它 getUserIdsByRole($roleName)
没有自定义代码,你可以做你想要的。
我用@Manquer指南编写了这个函数:
public static function getRoleUsers($role_name)
{
$connection = \Yii::$app->db;
$connection->open();
$command = $connection->createCommand(
"SELECT * FROM auth_assignment INNER JOIN user ON auth_assignment.user_id = user.id " .
"WHERE auth_assignment.item_name = '" . $role_name . "';");
$users = $command->queryAll();
$connection->close();
return $users;
}
也许对某人有用。