수색…
초기 단계
여러 유형의 데이터베이스 연결은 데이터베이스 구성 파일 ( app/config/database.php
)에 정의 할 수 있습니다. 예를 들어, 2 개의 MySQL 데이터베이스에서 데이터를 가져 오려면 둘 다 별도로 정의해야합니다.
<?php
return array(
'default' => 'mysql',
'connections' => array(
# Our primary database connection
'mysql' => array(
'driver' => 'mysql',
'host' => 'host1',
'database' => 'database1',
'username' => 'user1',
'password' => 'pass1'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Our secondary database connection
'mysql2' => array(
'driver' => 'mysql',
'host' => 'host2',
'database' => 'database2',
'username' => 'user2',
'password' => 'pass2'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
기본 연결은 여전히 mysql
설정됩니다. 즉, 달리 지정하지 않는 한 응용 프로그램은 mysql
연결을 사용합니다.
스키마 빌더 사용
스키마 빌더 내에서 모든 연결과 함께 스키마 외관을 사용하십시오. connection()
메서드를 실행하여 사용할 연결을 지정합니다.
Schema::connection('mysql2')->create('some_table', function($table)
{
$table->increments('id'):
});
DB 쿼리 빌더 사용
스키마 빌더와 마찬가지로 쿼리 작성기 에서 연결 을 정의하십시오 .
$users = DB::connection('mysql2')->select(...);
Eloquent 사용하기
Eloquent 모델에서 사용할 연결 을 정의 하는 여러 가지 방법이 있습니다. 한 가지 방법은 모델에 $ connection 변수를 설정하는 것입니다.
<?php
class SomeModel extends Eloquent {
protected $connection = 'mysql2';
}
연결은 setConnection
메소드를 통해 런타임에 정의 될 수도 있습니다.
<?php
class SomeController extends BaseController {
public function someMethod()
{
$someModel = new SomeModel;
$someModel->setConnection('mysql2');
$something = $someModel->find(1);
return $something;
}
}
Laravel 문서에서
각 개별 연결은 정의 된 연결이 여러 개있는 경우에도 DB
외관의 연결 방법을 통해 액세스 할 수 있습니다. connection
방법에 전달 된 name
은 config/database.php
구성 파일에 나열된 연결 중 하나와 일치해야합니다.
$users = DB::connection('foo')->select(...);
원시는 또한 연결 인스턴스에서 getPdo 메소드를 사용하여 기본 PDO 인스턴스에 액세스 할 수 있습니다.
$pdo = DB::connection()->getPdo();
https://laravel.com/docs/5.4/database#using-multiple-database-connections
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow