在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/PHP/ laravel(5.5) 操作多個(gè)數(shù)據(jù)庫(kù)問(wèn)題

laravel(5.5) 操作多個(gè)數(shù)據(jù)庫(kù)問(wèn)題

問(wèn)題:laravel5.5 使用ORM方式操作同一臺(tái)MySQL機(jī)器上的多個(gè)DB時(shí),如何優(yōu)雅的設(shè)置鏈接?

laravel默認(rèn)會(huì)鏈接env里配置的數(shù)據(jù)庫(kù),但是在不同的Model里我需要指定另一個(gè)數(shù)據(jù)庫(kù)而不是使用這個(gè)evn里默認(rèn)的;

查閱API手冊(cè)后知,在Model里指定$connection即可,但是經(jīng)過(guò)試驗(yàn)發(fā)現(xiàn)這個(gè)$connection的值 是需要在/config/database.php里新增一個(gè)array配置。

/config/database.php

//默認(rèn),會(huì)讀取env里的mysql配置
'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
        //自己新增的
        'introduction_processQualityReport' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

經(jīng)過(guò)測(cè)試發(fā)現(xiàn),自己新增的這個(gè)數(shù)據(jù)key必須和我想要在Model里單獨(dú)指定使用的數(shù)據(jù)庫(kù)名一樣,否則就報(bào)錯(cuò)database not xxx 之類的。

問(wèn)題1
新增的那個(gè)數(shù)組introduction_processQualityReport,個(gè)人感覺(jué)value里一大堆和默認(rèn)的那個(gè)沒(méi)啥區(qū)別,這樣寫有些累贅,不知道有沒(méi)有別的更優(yōu)雅的方式?(這2個(gè)數(shù)據(jù)庫(kù)都是在同一臺(tái)MySQL上)

回答
編輯回答
我甘愿

laravel 同一個(gè)項(xiàng)目操作多個(gè)數(shù)據(jù)庫(kù)只能這樣用,其實(shí)也沒(méi)那么累贅。

2017年7月16日 00:57
編輯回答
不舍棄

我沒(méi)有出現(xiàn)database配置里key必須為數(shù)據(jù)庫(kù)名的問(wèn)題,
database.php

'connections' => [
    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],
    'mysql_main' => [
        'driver'    => 'mysql',
        'host'      => env('DB_MAIN_HOST', 'localhost'),
        'port'      => env('DB_MAIN_PORT', '3306'),
        'database'  => env('DB_MAIN_DATABASE', 'forge'),
        'username'  => env('DB_MAIN_USERNAME', 'forge'),
        'password'  => env('DB_MAIN_PASSWORD', ''),
        'charset'   => 'utf8mb4',
        'collation' => 'utf8mb4_bin',
        'prefix'    => '',
        'strict' => true,
    ],
    'mysql_uc' => [
        'driver'    => 'mysql',
        'host'      => env('DB_UC_HOST', 'localhost'),
        'port'      => env('DB_UC_PORT', '3306'),
        'database'  => env('DB_UC_DATABASE', 'forge'),
        'username'  => env('DB_UC_USERNAME', 'forge'),
        'password'  => env('DB_UC_PASSWORD', ''),
        'charset'   => 'utf8mb4',
        'collation' => 'utf8mb4_bin',
        'prefix'    => '',
        'strict' => true,
    ],

.env
圖片描述

helpers.php定義是為了寫表單驗(yàn)證直接指定連接時(shí)用的。

//
define('a_DATABASE_NAME', env('DB_DATABASE'));
//
define('b_DATABASE_NAME', env('DB_MAIN_DATABASE'));
//
define('c_DATABASE_NAME', env('DB_UC_DATABASE'));
2018年6月20日 21:59