Agregator
@Agregator
Backend Developer (Yii2)

Как расширить DbManager в Yii2 что бы получить количество пользователей роли?

Собственно вопрос? Желательно примеры по подробнее :)
  • Вопрос задан
  • 2771 просмотр
Пригласить эксперта
Ответы на вопрос 2
@ryzhak
Так а зачем расширять
У вас же есть таблица auth_assignment, как вариант можно из нее обычным sql кол-во юзеров определенной роли вытаскивать

Пример:
В папке components создаете MyDBManager.php:
namespace app\components;

use yii\rbac\DbManager;

class MyDBManager extends DbManager
{
    /**
     * Возвращает количество пользователей определенной роли
     * 
     * @param string $role название роли
     * @return integer кол-во юзеров определенной роли
     */
    public function getUserCountByRole($role){
        return (new \yii\db\Query())
            ->select('user_id')
            ->from('tbl_auth_assignment')
            ->where('item_name = :role', [':role' => $role])
            ->count();
    }
}


Юзаем в контроллере:
use app\components\MyDBManager;
    ...
    public function actionIndex()
    {
        $auth = new MyDbManager();
        echo $auth->getUserCountByRole("admin");
    }
Ответ написан
Agregator
@Agregator Автор вопроса
Backend Developer (Yii2)
мне нужно чтобы это было в пределах одного объекта. а все мои попытки прилепить еще один метод приводят к ошибкам о несуществующем методе. не могу я въехать в архитектуру этого фреймворка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы