2017-09-15 12 views
1

다음은 Laravel의 페이지 매김을 사용하여 검색 테이블 데이터의 Facade를 사용하는 방법입니다.여러 DB를 사용하는 Laravel DB facade

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

하지만 그냥 DB는

이 어떻게 외관 문장에서 여러 DB를 사용하기 위해 사용 될 수 있는가?

DB를 읽기와 쓰기로 나눌 때 DB를 사용하거나 단일 문장으로 직접 액세스를 사용하고자합니다.

감사합니다.

당신이 .env에서 데이터베이스에 대한 구성을 지정해야합니다 모든
+2

DB 연결 ('읽기') -> 테이블 ('고객') -> 페이지 매김 (15);','DB :: 연결 ('쓰기') -> 테이블 ('고객') -> 페이지 매김 (15); 자세한 내용은 -> https://laravel.com/docs/5.5/database#using-multiple-database-connections –

+0

@ Surures Velusamy, 고맙습니다. :) 그래서 여러 DB에 사용자, 암호 등의 연결 정보가 다른 경우 ... 데이터베이스 연결 설정을 작성하는 방법은 무엇입니까? – Magnetic

+0

당신은 새로운 테스트 환경 변수 와'phpunit.xml'을 업데이트해야 값 : "데이터베이스"/ 값 :

답변

0

첫째 :

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() 
...