溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Laravel使用多數(shù)據(jù)庫的方法是什么

發(fā)布時(shí)間:2021-10-29 15:33:55 來源:億速云 閱讀:137 作者:iii 欄目:編程語言

這篇文章主要講解了“Laravel使用多數(shù)據(jù)庫的方法是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Laravel使用多數(shù)據(jù)庫的方法是什么”吧!                   

使用 .env >= 5.0 (測試基于 5.5 Laravel 8 也可用)

.env 文件

DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=database1DB_USERNAME=rootDB_PASSWORD=secretDB_CONNECTION_SECOND=mysqlDB_HOST_SECOND=127.0.0.1DB_PORT_SECOND=3306DB_DATABASE_SECOND=database2DB_USERNAME_SECOND=rootDB_PASSWORD_SECOND=secret

config/database.php 文件

'mysql' => [
    'driver'    => env('DB_CONNECTION'),
    'host'      => env('DB_HOST'),
    'port'      => env('DB_PORT'),
    'database'  => env('DB_DATABASE'),
    'username'  => env('DB_USERNAME'),
    'password'  => env('DB_PASSWORD'),],'mysql2' => [
    'driver'    => env('DB_CONNECTION_SECOND'),
    'host'      => env('DB_HOST_SECOND'),
    'port'      => env('DB_PORT_SECOND'),
    'database'  => env('DB_DATABASE_SECOND'),
    'username'  => env('DB_USERNAME_SECOND'),
    'password'  => env('DB_PASSWORD_SECOND'),],

注意:mysql2 中,如果 db_usernamedb_password 相同, 那么你可以使用  env('DB_USERNAME')。


模式

要指定使用哪個(gè)連接,只需使用 connection() 方法

Schema::connection('mysql2')->create('some_table', function($table){
    $table->increments('id'):});

查詢生產(chǎn)器

$users = DB::connection('mysql2')->select(...);

模型

在模型中設(shè)置 $connection變量。

class SomeModel extends Eloquent {

    protected $connection = 'mysql2';}

你也可以在運(yùn)行時(shí)通過 setConnection 方法或 on 靜態(tài)方法定義連接:

class SomeController extends BaseController {

    public function someMethod()
    {
        $someModel = new SomeModel;

        $someModel->setConnection('mysql2'); // non-static method

        $something = $someModel->find(1);

        $something = SomeModel::on('mysql2')->find(1); // static method

        return $something;
    }}

注意 在嘗試與跨數(shù)據(jù)庫的表建立關(guān)系時(shí)要小心! 可以這樣使用,但是它可能帶有一些注意事項(xiàng),并且取決于您擁有的數(shù)據(jù)庫與數(shù)據(jù)庫設(shè)置。


來自 Laravel Docs

使用多個(gè)數(shù)據(jù)庫連接

當(dāng)使用多個(gè)連接時(shí),您可以通過 DB門面類上的連接方法訪問每個(gè)連接。傳遞給 connection 方法的名稱應(yīng)該對應(yīng)于 config/database.php 配置文件中列出的一個(gè)連接:

$users = DB::connection('foo')->select(...);

您還可以使用連接實(shí)例上的 getPdo 方法訪問原始的底層 PDO 實(shí)例:

$pdo = DB::connection()->getPdo();

感謝各位的閱讀,以上就是“Laravel使用多數(shù)據(jù)庫的方法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Laravel使用多數(shù)據(jù)庫的方法是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI