수색…


초기 단계

여러 유형의 데이터베이스 연결은 데이터베이스 구성 파일 ( 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 방법에 전달 된 nameconfig/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