Задать вопрос
@MR_TOLSTIC

Почему не выполняется rbac/init YIi2?

Учусь использовать RBAC. Просмотрел уже кучу примеров. Делаю все в точности как в примере, но не выполняется rbac/init
вот мой rbac контроллер
namespace app\commands;

use Yii;
use yii\console\Controller;

class RbacController extends Controller
{
    public function actionInit()
    {
        $auth = Yii::$app->authManager;

        $rule = new \app\rbac\UserGroupRule();
        $auth->add($rule);

        // добавляем разрешение "createPost"
        $createPost = $auth->createPermission('createPost');
        $createPost->description = 'Create a post';
        $auth->add($createPost);

        // добавляем разрешение "updatePost"
        $updatePost = $auth->createPermission('updatePost');
        $updatePost->description = 'Update post';
        $auth->add($updatePost);

        // добавляем роль "author" и даём роли разрешение "createPost"
        $guest = $auth->createRole('guest');
        $guest->ruleName = $rule->name;
        $auth->add($guest);
        $auth->addChild($guest, $createPost);

        //moderator
        $moderator = $auth->createRole('moderator');
        $moderator->ruleName = $rule->name;
        $auth->add($moderator);
        $auth->addChild($moderator, $updatePost);
        $auth->addChild($moderator, $guest);

        // добавляем роль "admin" и даём роли разрешение "updatePost"
        // а также все разрешения роли "author"
        $admin = $auth->createRole('admin');
        $admin->ruleName = $rule->name;
        $auth->add($admin);
        $auth->addChild($admin, $moderator);

        // Назначение ролей пользователям. 1 и 2 это IDs возвращаемые IdentityInterface::getId()
        // обычно реализуемый в модели User.
        $auth->assign($guest, 3);
        $auth->assign($moderator, 2);
        $auth->assign($admin, 1);
    }
}


В косноли делаю rbac/init, выдает ошибку:

PHP Fatal Error 'yii\base\ErrorException' with message 'Call to a member function add() on null'

in D:\OpenServer\domains\KNDR\commands\RbacController.php:21

Stack trace:
#0 [internal function]: yii\base\ErrorHandler->handleFatalError()
#1 {main}

Где ошибка? Убил полдня, вообще не понимаю в чем проблема. Спасибо!
  • Вопрос задан
  • 800 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя padlyuck К ответам на вопрос (2)
padlyuck
@padlyuck
ну так английским языком же написано, нельзя вызвать метод у null. Yii::$app->authManager настроен? судя по ошибке - нет. config/console.php покажите
Ответ написан