Yii2 Error Migrate

tengo un error al utilizar ./yii migrate en ubuntu


PHP Fatal Error 'yii\base\ErrorException' with message 'Call to a member function createRole() on a non-object' in /home/root/public_html/cgpr/migrations/m141216_031227_crea_roles_para_usuarios_predefinidos.php:13

Stack trace:

#0 [internal function]: yii\base\ErrorHandler->handleFatalError()

#1 {main}



Alguien sabe cómo solucionarlo?

Puedes mostrar el código de tu migración?

Aquí está mi código de migración, no sé en qué me está fallando, gracias por tu respuesta, he estado un poco ocupado y no había visto.

Espero puedas ayudarme. Gracias.




<?php


use app\models\user\User;

use yii\db\Schema;

use yii\db\Migration;


class m141216_031227_crea_roles_para_usuarios_predefinidos extends Migration

{

    public function up()

    {

    	$rbac = Yii::$app->authManager;


        $guest = $rbac->createRole('invitado');

        $guest->description = 'Nadie';

        $rbac->add($guest);


        $user = $rbac->createRole('usuario');

        $user->description = 'Puede hacer consultas y procesos simples';

        $rbac->add($user);


        $manager = $rbac->createRole('gerente');

        $manager->description = 'Puede administrar toda la base de datos pero no usuarios';

        $rbac->add($manager);


        $admin = $rbac->createRole('administrador');

        $admin->description = 'Puede hacer todo incluyendo administrar usuarios';

        $rbac->add($admin);


        $rbac->addChild($admin, $manager);

        $rbac->addChild($manager, $user);

        $rbac->addChild($user, $guest);


        $rbac->assign(

            $admin,

            User::findOne(['username' => 'admin'])->id

        );

    }


    public function down()

    {

        echo "m141216_031227_crea_roles_para_usuarios_predefinidos cannot be reverted.\n";


        return false;

    }

}



Debes configurar el RBAC Manager.

Cuando no lo tienes configurado Yii::$app->authManager te devuelve NULL

En la configuración del ‘main’ tengo esto:




return [

//..

'authManager' => [

            'class' => 'yii\rbac\DbManager',

            'defaultRoles' => ['invitado'],

        ],

//..

]



¿Eso es a lo que te refieres?

Si, pero debe estar en la sección de components




return [

    // ...

    'components' => [

        'authManager' => [

            'class' => 'yii\rbac\DbManager',

            'defaultRoles' => ['invitado'],

        ],

        // ...

    ],

];



Me parece que el main que debes configurar es la que esta en la carpeta console/config para usarlo en la migración.

Me ha funcionado correctamente, muchas gracias por tu ayuda.