2015-05-27 25 views
13

Jak to opisano here Próbuję przeprowadzić migrację, aby umożliwić Yii utworzenie tabel uwierzytelniania użytkowników. Jednak pojawia się błąd:Yii2: Nie można wykonać migracji RBAC (powinieneś skonfigurować "authManager" ...)

Exception 'yii\base\InvalidConfigException' with message 'You should configure "authManager" component to use database before executing this migration.'

AuthManager jest obecny w konfiguracji, ale nadal dostaję ten błąd. Konfiguracja:

'components' => [ 
    ... 
    'db' => $db, 
    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //   'defaultRoles' => ['guest'], 
    ], 
    ... 
], 

Na czym polega problem?

Odpowiedz

37

Problem był dość prosty: konfiguracja nie była używana. yii migrate to polecenie konsoli i zwykle konfiguracja takich poleceń jest umieszczana w oddzielnym pliku.

W przypadku yii2-app-zasadowej szablonu, z którego zostały utworzone mój wniosek, znajduje się plik konfiguracyjny config/console.php gdzie authManager musi być zadeklarowane. Nie wystarczy, aby było to tylko zadeklarowane w config/web.php.

W przypadku yii2-app-zaawansowanym authManager powinny być zadeklarowane w console/config/main.php a nie w plikach konfiguracyjnych backend lub frontend.

+0

dziękuję! To był dla mnie ten sam problem. –

+0

dziękuję bardzo, miałem ten sam problem! – Yerke

+0

Następnie, dlaczego [oficjalny dokument] (http://www.yiiframework.com/doc-2.0/guide-security-authorization.html) powiedział to: w przypadku aplikacji yii2-advanced authManager powinien być zadeklarowany tylko jeden raz /config/main.php. –