【CakePHP3】복수 데이터베이스 접속을 실현하는 방법
default
이외의 데이터베이스 연결을 시도했지만 단순히 app.php
에 연결 설정을 추가하고 테이블에 useDbConfig
를 더한 것만으로는 작동하지 않았습니다. 여러가지 조사해 접속할 수 있게 되었으므로, 대응 방법을 메모해 둡니다.환경
대응 방법
할 일은 다음 두 가지입니다.
1 app.php에 설정 추가
app.php
//default以外に新たにDB接続設定を追加します
'another_db' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'another_host',
'username' => 'another_username',
'password' => 'another_password',
'database' => 'another_database',
'encoding' => 'utf8mb4',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
'url' => env('DATABASE_TEST_URL', null),
],
2 테이블 파일에 함수 만들기
SamplesTable.php<?php
namespace App\Model\Table;
use Cake\ORM\Table;
class SamplesTable extends Table
{
...
//この関数を追加します
public static function defaultConnectionName(){
return 'another_db';
}
...
}
이제 SamplesTable
는 another_db
에 연결할 수 있었습니다!
참고문헌
//default以外に新たにDB接続設定を追加します
'another_db' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'another_host',
'username' => 'another_username',
'password' => 'another_password',
'database' => 'another_database',
'encoding' => 'utf8mb4',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
'url' => env('DATABASE_TEST_URL', null),
],
<?php
namespace App\Model\Table;
use Cake\ORM\Table;
class SamplesTable extends Table
{
...
//この関数を追加します
public static function defaultConnectionName(){
return 'another_db';
}
...
}
Reference
이 문제에 관하여(【CakePHP3】복수 데이터베이스 접속을 실현하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sssinsi/items/13ade5dc3c7b4ee40efe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)