我有一个现有的Yii2 basic系统,它运行于Oracle上,并通过Yii2Admin内置了RBAC。效果很好。
我现在需要另外使用另一个DB (MS 2008)。
因此,我已经设置了一个新模块,它使用了第二个Yii::$app->db2链接,所有这些都正常工作。
我的问题是,对于我的第二个2008 DB的用户来说,在这个模块中是否可能有登录+ RBAC链接到2008 DB而不是现有的Oracle DB。
还是我要用甲骨文?
发布于 2016-10-06 08:43:40
是的,我认为您可以重写并为MSSQL创建一个单独的RBAC管理器
在RBAC DB管理器中,您可以看到属性db
在您的配置文件中:
return [
// ...
'components' => [
'authManager2' => [ // <!-- Auth Manager 2
'class' => 'yii\rbac\DbManager',
'db' => 'db2' // <-- Here is the magic change db instance
],
// ...
],然后可以使用建立您的授权对象进行Yii::$app->authManager2数据处理。
希望这能帮到你。
发布于 2016-10-03 14:22:42
试试折叠配置。首先将2008连接设置为db1名称示例:
'db1' => [
'class' => '\yii\db\Connection',
'dsn' => 'Your MS-SQL Server 2008 DNS',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],并在ActiveRecord模型中为db1值重写函数db1()。这将查询来自2008的数据。
文件:http://www.yiiframework.com/doc-2.0/yii-db-activerecord.html#getDb()-detail
注意:为了工作,您必须通过扩展类或其他东西来定制Yii2Admin。
https://stackoverflow.com/questions/39794403
复制相似问题