2017-10-08 5 views
-1

J'installe yii2-rbac suite à cette page du site: https://github.com/dektrium/yii2-rbac/blob/master/docs/installation.md. Je le fais une deuxième fois. La première fois que je l'ai fait, mais j'écrit dans le fichier config/web.php:l'installation de yii2-rbac erreur Vous avez tort configuration authManager

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

Je ne savais pas, ce RBAC '=> 'dektrium \ RBAC \ RbacConsoleModule' il doit écrire dans la console. php (pas dans web.php).

'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ], 

` Ce code J'ai écrit dans les deux fichiers de configuration: web.php et console.php, mais dans le web.php j'ai écrit 'RBAC' => 'dektrium \ RBAC \ RbacConsoleModule' et console.php Je ne l'ai pas écrit, mais tout a fonctionné: yii2-rbac a été installé avec succès. Et toutes les transactions ont réussi. Mais 'rbac' => 'dektrium \ rbac \ RbacConsoleModule' dans web.php me semble faux. Ce n'est pas un module web, c'est un module de console. J'ai ensuite annulé les transactions (migrate/down) et j'ai supprimé rbac du tout en supprimant de la commande composer.json "dektrium/yii2-rbac": "[email protected]". Tout a été supprimé. Puis j'ai commencé à installer rbac pour la deuxième fois. Après l'installation du compositeur, je l'ai écrit dans le web.php:

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    'rbac' => 'dektrium\rbac\RbacWebModule', 
    //'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

et console.php je l'ai écrit:

'modules' => [ 

    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

Le site sur yii2 ne fonctionnent pas après !!! J'ai changé dans le web.php "... RbacConsoleModule". Le site fonctionne. Pourquoi cela ne fonctionne pas avec RbacWebModule? Ensuite, j'ai essayé d'appliquer des transactions, que j'ai déjà annulées, mais je signale une erreur: Vous avez tort Configuration d'authManager enter image description here

Que puis-je faire? Aidez moi. Ecscuse-moi pour mon anglais. Je viens de Russie.

mon console.php:

$config = [ 
'id' => 'basic-console', 
'basePath' => dirname(__DIR__), 
'bootstrap' => ['log'], 
'controllerNamespace' => 'app\commands', 
'components' => [ 
    'cache' => [ 
     'class' => 'yii\caching\FileCache', 
    ], 
    'log' => [ 
     'targets' => [ 
      [ 
       'class' => 'yii\log\FileTarget', 
       'levels' => ['error', 'warning'], 
      ], 
     ], 
    ], 
    'db' => $db, 

    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ] 
], 

'modules' => [ 

    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

// ....

mon web.php:

//This all in $component 

    'db' => require(__DIR__ . '/db.php'), 


    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
     //'defaultRoles' => ['guest'], 
    ], 

], 

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 
    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

], 

Répondre

1

Que tous! Le problème a été décidé. Il doit écrire la section authManager sur les modules, et non sur les composants:

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
    ], 

    'authManager' => [ 
     'class'  => 'yii\rbac\DbManager', 
    //'defaultRoles' => ['guest'], 
    ] 

    //'rbac' => 'dektrium\rbac\RbacWebModule', 
    'rbac' => 'dektrium\rbac\RbacConsoleModule', 

]