2017-09-15 53 views
1

以下是如何在Laravel中使用Facade搜索表格數據與分頁。Laravel DB外觀使用多個數據庫

DB::table('customers')->paginate(15); 

,但它可以使用只是一個DB,

那麼如何使用幾個分貝門面句子?

我希望用DB作爲讀寫DB或直接訪問單個句子。

謝謝廣告。

+2

您需要使用**連接方法**,DB :: connection('read') - > table('customers') - > paginate(15);','DB :: connection('write' ) - > table('customers') - > paginate(15);' 欲瞭解更多詳情 - > https://laravel.com/docs/5.5/database#using-multiple-database-connections –

+0

@Suresh Velusamy,謝謝。:)如果有幾個DB在用戶,密碼等方面有不同的連接信息......那麼如何編寫數據庫連接設置? – Magnetic

+0

你必須更新你的'用新的測試環境變量 phpunit.xml'

回答

0

首先你必須 .env指定你的數據庫配置:

DB_CONNECTION=mysql 
DB_HOST=172.17.0.1 
DB_DATABASE=my_database 
DB_USERNAME=username 
DB_PASSWORD=password 

DB_SLAVE_HOST=172.17.0.1 
DB_SLAVE_DATABASE=my_database_slave 
DB_SLAVE_USERNAME=username2 
DB_SLAVE_PASSWORD=password2 

DB_MASTER_HOST=172.17.0.1 
DB_MASTER_DATABASE=my_database 
DB_MASTER_USERNAME=username 
DB_MASTER_PASSWORD=password 

project.dev/config/database.php

'mysql_master' => [ 
     'driver' => 'mysql', 
     'host'  => env('DB_MASTER_HOST', 'localhost'), 
     'port'  => env('DB_MASTER_PORT', '3306'), 
     'database' => env('DB_MASTER_DATABASE', 'forge'), 
     'username' => env('DB_MASTER_USERNAME', 'forge'), 
     'password' => env('DB_MASTER_PASSWORD', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => false, 
     'engine' => null, 
    ], 
    'mysql_slave'  => [ 
     'driver' => 'mysql', 
     'host'  => env('DB_SLAVE_HOST', 'localhost'), 
     'database' => env('DB_SLAVE_DATABASE', 'forge'), 
     'username' => env('DB_SLAVE_USERNAME', 'forge'), 
     'password' => env('DB_SLAVE_PASSWORD', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => false, 
    ], 

然後你可以使用方法setConnection這樣的:

public function getIndex(Product $product) 
{ 
    $this->products = $product->setConnection('mysql_slave') 
     ->where('id' '>' 20) 
     ->get() 
...