Lumen으로 여러 DB에 액세스하는 방법

3486 단어 PHPlumenEloquent
공식 문서에 조작 방법이 기재되어 있지 않기 때문이다.

프로파일 추가


새로 만드십시오config/database.php.
다음과 같은 구성이어야 한다.
.                        
├── app                          
├── artisan              
├── bootstrap                    
├── composer.json        
├── composer.lock  
├── config
│   └── database.php      
├── database                      
├── phpunit.xml          
├── public                    
├── readme.md            
├── resources                      
├── routes                       
├── storage                         
├── tests                   
└── vendor                

파일 로깅 설정

config/database.phpconnections 그룹에 연결 목적지를 추가합니다.
<?php
return [

    'default' => 'db1',
    'migrations' => 'migrations',
    'connections' => [
        'db1' => [
            'driver'    => env('DB_CONNECTION'),
            'host'      => env('DB_HOST'),
            'port'      => env('DB_PORT'),
            'database'  => env('DB_DATABASE'),
            'username'  => env('DB_USERNAME'),
            'password'  => env('DB_PASSWORD'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
        'db2' => [
            'driver'    => env('DB2_CONNECTION'),
            'host'      => env('DB2_HOST'),
            'port'      => env('DB2_PORT'),
            'database'  => env('DB2_DATABASE'),
            'username'  => env('DB2_USERNAME'),
            'password'  => env('DB2_PASSWORD'),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
    ],
];
default 명시적으로 지정되지 않은 DB의 방향migrations 설정하지 않으면 artisan migrate에서 오류가 발생합니다.

.env 파일 수정

.env 파일에 연결 대상 정보를 기록하는 상수를 추가합니다.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db1
DB_USERNAME=
DB_PASSWORD=

DB2_CONNECTION=mysql
DB2_HOST=127.0.0.1
DB2_PORT=3306
DB2_DATABASE=db2
DB2_USERNAME=
DB2_PASSWORD=
※ 상기 접속 정보는 적절하니 환경에 맞게 설정

이용 방법


기본적으로 config/database.phpdefault에 지정된 목적지에 연결된 DB
다른 DB에 액세스하려면 명시적으로 지정해야 합니다.

Eloquent 옆에 연결 정보를 기록하는 방법

<?php

class Hoge extends Model {

    protected $connection = 'db2';

}

실행 시 연결 정보 정의 방법

<?php

class ExampleController extends Controller {

    public function fooMethod()
    {
        $foo = new Foo;

        $foo->setConnection('db2');

        $data = $foo->find(1);

        return $data;
    }

}

조회 구축기에서 지정한 방법

$users = DB::connection('db2')->select(...);

결론


Laavel과 기본적으로 동일

좋은 웹페이지 즐겨찾기