文档章节

yii2使用多个数据库的案例

白狼栈
 白狼栈
发布于 2016/04/12 22:13
字数 818
阅读 379
收藏 4
点赞 1
评论 0

作者:白狼

出处:http://www.manks.top/article/yii2_%E5%88%86%E5%BA%93%E5%88%86%E8%A1%A8_config

本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


关于yii2配置操作多个数据库进行操作,文档上面也给出了具体的配置,一个实战性的例子,也是很简单的,我们这里以权限控制为单个管理库dbname2,业务库dbname 为例来看看如何配置多个数据库。

No1. 第一步,我们参照大部分百度的文档进行操作即可。

'components' => [
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=ip;dbname=dbname',
        'username' => 'username',
        'password' => 'pwd',
        'charset' => 'utf8',
    ],
    'db2' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=ip;dbname=dbname2',
        'username' => 'username',
        'password' => 'pwd',
        'charset' => 'utf8',
    ],
],

No2.第二步,这里我们打开配置文件 main.php ,对 authManager 选项增加四个权限关联的数据表的配置。

'authManager' => [
    'class' => 'yii\rbac\DbManager',
    'defaultRoles' => ['guest'],
    'itemTable' => 'dbname2.auth_item',
    'itemChildTable' => 'dbname2.auth_item_child',
    'assignmentTable' => 'dbname2.auth_assignment',
    'ruleTable' => 'dbname2.auth_rule',
],

其实这里配置的是 vendor\yiisoft\yii2\rbac\DbManager.php类的四个属性,这里理应向上面一致,直接更改项目配置文件。

No3.到这里其实就差不多了,那有同学疑问了,我这还没看呢,怎么就结束了呢?那那那你说我这user表和menu表怎么办?别急,我们来看看第三个步骤:

这一步也是很简单滴,我们向下面这样简单配置下就ok了

找到你项目的config\params.php文件,添加下面的配置项就好

'mdm.admin.configs' => [
    'menuTable' => 'dbname2.menu',
    // 'userTable' => 'dbname2.user',
],

注意啦,上面这个为啥配置项 userTable屏蔽了呢,这个要看个人的配置,打开文件 vendor\mdmsoft\yii2-admin\components\Configs.php文件,查看下有没有userTable属性,如果有,这里就需要配置,如果没有,你配置试试报不报错

还差一步,最后最后一步,也是个例子说明哦。

我们以上面的userTable为例,如果我们用gii生成了一个model文件User.php,因为默认配置的表是位于dbname库的,而我们的user表是dbname2库中的表,所以呢,我们需要修改User.php 这个model文件的tableName方法,表前面加库名即可。

public static function tableName()
{
    return 'dbname.user';
}

有脑残粉要问了,那那那这里的 auth_item 等表用不用也这样操作喃,答案当然是No啦,因为我们这里采用的是rbacyii2-admin配置的权限管理机制,上面的配置项其实我们都已经制定好啦。

什么,你没看懂,那啥啥啥配置,啥啥啥vendor\mdmsoft你的项目木有,我猜你系统的权限控制木有做好,哈哈,那就先去看看《yii2搭建完美后台并实现rbac权限控制》这边文章,然后再回过头来试试看。



本文转载自:http://www.manks.top/article/yii2_%E5%88%86%E5%BA%93%E5%88%86%E8%A1%A8_config

共有 人打赏支持
白狼栈
粉丝 17
博文 81
码字总数 30876
作品 0
杭州
reids之YII常见使用问题

首先YII的框架包中并不含redis部分,需要自己配置和安装。 第一部分:Mac下YII框架的redis安装与配置 1.安装redis 方法一: 在没有安装YII的时候,可以通过修改composer的json文件实现修改安...

0_0Loong
2017/10/19
0
0
安装指南: 带有 RBAC 的 Yii2 高级模板

在这里我介绍一种快速简单的方法来在 Yii2 高级模版中安装 RBAC(Role Based Access Control) 系统 安装: Yii2 高级模板 在这里使用 安装 yii2 高级模板。假如你的机器中没有 请下载 它的最新...

首席烤地瓜
2016/11/10
17
0
【翻译】Yii2 第1章 开始

让我们看看,怎样以最小的代价使用Yii2创建一个站点。目的是学习使用Yii2应用模版的安装过程,并开始体验模版里提供的一系列特性。 一个基本应用 开始使用Yii2最基本和直接的方式,是使用Yii...

zcgly
2015/09/15
844
7
yii2搭建完美后台并实现rbac权限控制

作者:白狼 出处:http://www.manks.top/article/yii2framerbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律...

白狼栈
2016/03/30
554
2
这些最热门的 PHP 框架,哪一款是你的菜?

原文出处:opensource 译文出处:开源中国—两味真火 PHP 是世界上最流行的编程语言之一,广泛用于主要的项目中。例如,Facebook 就是利用 PHP 来创建和维护他们的内部系统;WordPress 内部基...

opensource
2016/12/27
0
0
Yii入门指导(四):强大的“小物件”

1,修改默认的控制器 Yii的默认应用: 所有的配置都可以在main.php中进行配置,那么修改默认的控制器就是在main.php中增加如下代码: 'defaultController' => '', //修改默认控制器 Yii模块:...

Koma
2014/10/24
0
1
【翻译】Yii2 第2章 用Yii2创建自定义应用(第2部分)

将Yii框架引入我们的应用 现在,我们拥有了可以工作的全套基础设施,让我们回到在设计阶段时定义的第一个特性,让我们先为它写一个验收测试。 第一个端到端测试 端到端验收测试的要点就是,我...

zcgly
2015/09/29
383
0
Yii框架数据库多数据库、主从、读写分离

Yii框架数据库多数据库、主从、读写分离 实现 功能描述: 1.实现主从数据库读写分离 主库:写 从库(可多个):读 2.主数据库无法连接时 可设置从数据库是否 可写 3.所有从数据库无法连接时 可...

老查
2015/08/21
0
0
谈谈yii2-gii如何自定义模板

作者:白狼 出处:http://www.manks.top/article/yii2giicustomtemplate本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责...

白狼栈
2016/04/26
39
0
基于 Yii2 的后台骨架--OpenAdm-Yii2

OpenAdm 是一个基于 Yii2 的后台开源骨架,集成了用户和插件系统,使用主题功能,默认使 用AdminLTE2 的模板的主题,可以非常方便的开发新的功能。 点击此处查看 Demo 特性: 1.天然集成RBAC权限...

熊川
2017/01/19
6.4K
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python上传文件

f=request.FILES.get('fafa') ff=open(f.name,mode='wb') for i in f.chunks(): ff.write(i) ff.close()...

南桥北木
3分钟前
0
0
CISCO VPN Client Reason 442 WIN8/10错误解决方案

http://jdkleo.iteye.com/blog/2163493 引用 http://my.oschina.net/cloudcoder/blog/220391?p={{currentPage 1}} 在使用cisco VPN 客户端登录时,产生Reason 442:Failedto enable Virtual......

chenfj_fer
6分钟前
0
0
信号量有没有容量限制?

之前一直误以为信号量初始化的时候那个初始化的值是信号量的“容量”,昨天同事指出了我的错误,最初我是不相信的,经过以下代码实践,证明了我的错误: Java版: import java.util.concurr...

锟斤拷烫烫烫
10分钟前
0
0
【RocketMQ】Message存储笔记

概述 消息中间件存储分为三种,一是保存在内存中,速度快但会因为系统宕机等因素造成消息丢失;二是保存在内存中,同时定时将消息写入DB中,好处是持久化消息,如何读写DB是MQ的瓶颈;三是内...

SaintTinyBoy
21分钟前
0
0
Android应用Context详解及源码解析

Android应用Context详解及源码解析 本文定位:优质文章收集 本文转载 1 背景 今天突然想起之前在上家公司(做TV与BOX盒子)时有好几个人问过我关于Android的Context到底是啥的问题,所以就马...

lichuangnk
52分钟前
0
0
PostgreSQL的昨天今天和明天

PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS), 也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。 这个起源于伯克利(...

闻术苑
57分钟前
1
0
Mysql对自增主键ID进行重新排序

1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2,添加新主键字段: ALTER TABLE `table_name` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST; 3,设置新主键: ALTER TABLE `table_nam......

niithub
今天
0
0
福利篇:免费csdn vip账号分享

分享一个发布免费csdn vip账号的网站:啰嗦vip www.lostvip.com , 各种软件开发类的视频教程:慕课网、动脑学院、黑马各大培训机构VIP视频教程,非常不错!

在水一方发盐人
今天
0
0
Nginx+Tomcat搭建高性能负载均衡集群

一、 工具   nginx-1.8.0   apache-tomcat-6.0.33 二、 目标   实现高性能负载均衡的Tomcat集群:    三、 步骤   1、首先下载Nginx,要下载稳定版:      2、然后解压两个Tom...

码代码的小司机
今天
0
0
Centos7编译安装ntp-4.2.8p11

Centos7编译安装ntp-4.2.8p11 背景 因公司做等保评级,在进行安全漏洞检测时发现ntp需要升级到ntp-4.2.7p25以上版本,经过一番搜索,没有该版本及新版本ntp的yum安装包,所以只能编译安装了,...

阿dai
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部