yii2使用多個資料庫執行個體方法

來源:互聯網
上載者:User
關於yii2配置操作多個資料庫進行操作,文檔上面也給出了具體的配置,一個實戰性的例子,也是很簡單的,我們這裡以許可權控製為單個管理庫dbname2,業務庫dbname 為例來看看如何配置多個資料庫。本文主要和大家介紹了yii2使用多個資料庫的案例,希望能協助到大家。

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';}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.