zoukankan      html  css  js  c++  java
  • yii2使用多个数据库的案例

    关于yii2配置操作多个数据库进行操作,文档上面也给出了具体的配置,一个实战性的例子,也是很简单的,我们这里以权限控制为单个管理库dbname2,业务库dbname 为例来看看如何配置多个数据库。 No1. 第一步,我们参照大部分百度的文档进行操作即可。 "components" => [ "db" => [ "class" => "yiidbConnection", "dsn" => "mysql:host=ip;dbname=dbname", "username" => "username", "password" => "pwd", "charset" => "utf8", ], "db2" => [ "class" => "yiidbConnection", "dsn" => "mysql:host=ip;dbname=dbname2", "username" => "username", "password" => "pwd", "charset" => "utf8", ], ], No2.第二步,这里我们打开配置文件 main.php ,对 authManager 选项增加四个权限关联的数据表的配置。 "authManager" => [ "class" => "yii bacDbManager", "defaultRoles" => ["guest"], "itemTable" => "dbname2.auth_item", "itemChildTable" => "dbname2.auth_item_child", "assignmentTable" => "dbname2.auth_assignment", "ruleTable" => "dbname2.auth_rule", ], 其实这里配置的是 vendoryiisoftyii2 bacDbManager.php类的四个属性,这里理应向上面一致,直接更改项目配置文件。 No3.到这里其实就差不多了,那有同学疑问了,我这还没看呢,怎么就结束了呢?那那那你说我这user表和menu表怎么办?别急,我们来看看第三个步骤:这一步也是很简单滴,我们向下面这样简单配置下就ok了。找到你项目的configparams.php文件,添加下面的配置项就好 "mdm.admin.configs" => [ "menuTable" => "dbname2.menu", // "userTable" => "dbname2.user", ], 注意啦,上面这个为啥配置项 userTable屏蔽了呢,这个要看个人的配置,打开文件 vendormdmsoftyii2-admincomponentsConfigs.php文件,查看下有没有userTable属性,如果有,这里就需要配置,如果没有,你配置试试报不报错 j_0067.gif 还差一步,最后最后一步,也是个例子说明哦。 我们以上面的userTable为例,如果我们用gii生成了一个model文件User.php,因为默认配置的表是位于dbname库的,而我们的user表是dbname2库中的表,所以呢,我们需要修改User.php 这个model文件的tableName方法,表前面加库名即可。 public static function tableName() { return "dbname.user"; } 有脑残粉要问了,那那那这里的 auth_item 等表用不用也这样操作喃,答案当然是No啦,因为我们这里采用的是 rbac和 yii2-admin配置的权限管理机制,上面的配置项其实我们都已经制定好啦。 什么,你没看懂,那啥啥啥配置,啥啥啥 vendormdmsoft你的项目木有,我猜你系统的权限控制木有做好,哈哈,那就先去看看yii2搭建完美后台并实现rbac权限控制这边文章,然后再回过头来试试看。
  • 相关阅读:
    HDU4628+状态压缩DP
    Javascript 去掉字符串前后空格的五种方法
    Javascript 数组之判断取值和数组取值
    ASP.NET MVC 出现错误 “The view 'XXX' or its master was not found or no view engine support”
    ASP.NET MVC 页面调整并传递参数
    ASP.NET MV3 部署网站 报"Could not load file or assembly ' System.Web.Helpers “ 错的解决方法
    ASP.NET MVC 控制器向View传值的三种方法
    CSharp 如何通过拼接XML调用存储过程来查询数据
    SQLServer : EXEC和sp_executesql的区别
    关于SQLServer2005的学习笔记—异常捕获及处理
  • 原文地址:https://www.cnblogs.com/grimm/p/5706110.html
Copyright © 2011-2022 走看看