2016-09-30 68 views
9

我有一个现有的Yii2基本系统,运行Oracle数据库并通过Yii2Admin内置RBAC。它效果很好。模块内的RBAC

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

因此,我建立了一个使用第二个Yii :: $ app-> db2链接的新模块,并且所有工作正常。

我的问题是,对于我的第二个MS-SQL Server 2008数据库用户,是否有可能在此模块中连接到MS-SQL Server 2008数据库而不是现有Oracle数据库的登录名+ RBAC。

或者我需要使用Oracle吗?

回答

0

是啊,我认为这是可能的,你可以重写,并为您的MSSQL服务器

创建一个单独的RBAC经理在RBAC DB Manager你可以看到属性db

在您的配置文件:

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

然后你可以用build your authorization数据使用Yii::$app->authManager2对象

希望这会帮助你。

-1

试试folow config。 拳设置MS-SQL Server 2008中连接作为DB1名称 实施例:)中的ActiveRecord模型

'db1' => [ 
     'class' => '\yii\db\Connection', 
     'dsn' => 'Your MS-SQL Server 2008 DNS', 
     'username' => 'root', 
     'password' => '', 
     'charset' => 'utf8', 
    ], 

和倍率功能getDB(为db1的值。从MS-SQL服务器,将查询数据2008

文件:http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html#getDb()-detail

注:必须通过定制扩展类或某事的工作Yii2Admin。

+0

我已经有两个数据库连接工作正常。注意:您必须通过扩展类或工作来定义Yii2Admin。“对于我的问题并不是真正的答案 – Jonnny

+0

您是客户yii2admin模块吗?您可以为所有模块模型提供netome功能getDb – dungphanxuan