2016-12-14 2 views
3

다른 데이터베이스/스키마에 액세스하려면 다중 연결을 만들어야합니까? 하나의 dbconnection을 사용합니다. laravel eloquent 또는 db builder에서 데이터베이스 이름을 전달하는 방법이 있습니까? 현재 원시 PHP에서 하나의 연결을 사용하여 다른 스키마를 쿼리합니다. 연결()과 같이, 내 이름의 연결을 설정하려면 :LARAVEL Eloquent query multiple schema

답변

3

database.php 파일에 대한 다른 연결을 만든 다음이를 능숙한 모델에 전달하십시오.

'mysql1' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db1', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

// connection 2 
'mysql2' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db2', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

가정하자 내가 모델 User.php 내가 추가 할 것입니다 내 모델 내 이름이 MySQL의 연결 mysql1

을 사용 있습니다

protected $connection = 'mysql1'; 

난 후라는 MySQL의 연결 mysql2 을 전합니다 사용하려는 경우 사용

protected $connection = 'mysql2'; 

여기에 연결을 고정 모드로 설정합니다. els.

+0

정보를 제공해 주셔서 감사합니다. – Arav

+0

도움이 되셨 다행입니다! –

1

는 웅변, 난 DB를 사용 당신이 인식되지 않은 경우, 데이터베이스 연결이 설정 응용 프로그램/설정/데이터베이스에 이름이 지정됩니다

 $query = DB::connection('db_connection_name')->table($this->table) 

.php

+0

감사합니다. 정보를 많이 보내 주셔서 감사합니다. – Arav