Module 模块内的RBAC

Module 模块内的RBAC,module,yii2,rbac,Module,Yii2,Rbac,我有一个现有的Yii2基本系统,它运行在Oracle数据库上,并通过Yii2Admin内置了RBAC。它工作得很好 我现在需要另外使用另一个数据库(MS-SQL Server 2008) 因此,我设置了一个新模块,它使用第二个Yii::$app->db2链接,一切正常 我的问题是,对于我的第二个MS-SQL Server 2008 DB的用户,是否可以在链接到MS-SQL Server 2008 DB而不是现有Oracle DB的模块中使用登录+RBAC 还是我必须使用Oracle 试试下面的配

我有一个现有的Yii2基本系统,它运行在Oracle数据库上,并通过Yii2Admin内置了RBAC。它工作得很好

我现在需要另外使用另一个数据库(MS-SQL Server 2008)

因此,我设置了一个新模块,它使用第二个Yii::$app->db2链接,一切正常

我的问题是,对于我的第二个MS-SQL Server 2008 DB的用户,是否可以在链接到MS-SQL Server 2008 DB而不是现有Oracle DB的模块中使用登录+RBAC

还是我必须使用Oracle

试试下面的配置。 首先将MS-SQL Server 2008连接设置为db1名称 例如:

'db1' => [
        'class' => '\yii\db\Connection',
        'dsn' => 'Your MS-SQL Server 2008  DNS',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],
并在ActiveRecord模型中为db1值重写函数getDB()。这将从MS-SQL Server 2008查询数据

文件:


注意:您必须通过扩展类或其他工作方式自定义Yii2Admin。

是的,我认为您可以覆盖并为MSSQL服务器创建单独的管理器

在中,您可以看到属性

在配置文件中:

return [
      // ...
      'components' => [
        'authManager2' => [ // <!-- Auth Manager 2
            'class' => 'yii\rbac\DbManager',
            'db' => 'db2' // <-- Here is the magic change db instance
      ],
      // ...
],
返回[
// ...
“组件”=>[

'authManager2'=>[//我已经有两个数据库连接工作正常。
注意:您必须通过扩展类或用于工作的其他方式自定义Yii2Admin。
并不是我问题的答案。您是否自定义Yii2Admin模块?您为所有模型的模块设置了net custome函数getDb