2015-05-27 17 views
13

Come descritto here Sto tentando di eseguire la migrazione per consentire la creazione delle tabelle di autenticazione utente. Tuttavia ho ricevuto l'errore:Yii2: Impossibile eseguire la migrazione RBAC (È necessario configurare "authManager" ...)

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

authManager è presente nella configurazione ma ottengo ancora quell'errore. Configurazione:

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

Qual è il problema?

risposta

37

Il problema era piuttosto semplice: la configurazione non è stata utilizzata. yii migrate è un comando della console e in genere la configurazione di tali comandi viene inserita in un file separato.

In caso di yii2-app-base modello, da cui ho creato la mia domanda, c'è un file di configurazione config/console.php dove l'AuthManager deve essere dichiarato. Non è sufficiente averlo nel solo config/web.php dichiarato.

In caso di yii2-app-advanced, authManager deve essere dichiarato in console/config/main.php e non nei file di configurazione di backend o di frontend.

+0

grazie! Era lo stesso problema per me. –

+0

grazie mille, ho avuto lo stesso problema! – Yerke

+0

Allora perché [documento ufficiale] (http://www.yiiframework.com/doc-2.0/guide-security-authorization.html) ha detto questo: In caso di yii2-advanced-app, authManager dovrebbe essere dichiarato una sola volta in comune /config/main.php. –