Ошибка : Вызов функции-члена getRoles () со значением NULL
взято из: yii2-admin \ models \ searchs \ AuthItem.php
в строке 75:
public function search($params)
{
/* @var \yii\rbac\Manager $authManager */
$authManager = Configs::authManager();
if ($this->type == Item::TYPE_ROLE) {
here-> $items = $authManager->getRoles();
} else {
Это из-за yii2-admin \ components \ configs.php:
в строке 148:
public static function instance()
{
if (self::$_instance === null) {
$type = ArrayHelper::getValue(Yii::$app->params, 'mdm.admin.configs', []);
if (is_array($type) && !isset($type['class'])) {
$type['class'] = static::className();
}
return self::$_instance = Yii::createObject($type);
}
here-> return self::$_instance;
}
возвращает объект конфигурации, где 'authManager' равен нулю
Согласно:
Yii2 RBAC Ошибка DbManager Вызов функции-члена getRole () со значением NULL
и
https://www.yiiframework.com/doc/guide/2.0/en/security-authorization#configuring-rbac-manager
Все, что необходимо для приложения yii2-advanced-app, это добавить следующее:
'authManager' => [
'class' => 'common\components\extended\rbac\DbManager',
'cache' => 'cache',
],
в общий \ config \ main.php в массиве компонентов
Это уже было и, похоже, не влияет на конфиг из rbac.
Кроме того, я попытался добавить authManager в конфигурационные файлы консоли, внешнего интерфейса и внутреннего интерфейса без эффекта.
Ожидаемый результат: 'authManager' => 'DbManager or something'
Фактический результат: 'authManager' => null
Файл конфигурации yii2 rbac корректно загружается в соединение db, но authManager всегда имеет значение null.
Эта проблема возникает при использовании расширения управления yii2admin rbac, но не при использовании yii2-advanced-app в целом, поскольку расширенное приложение использует \Yii::$app->authManager
, а не yii2 rbac Configs::authManager
Любая помощь или указатели будут с благодарностью. Спасибо.