cakephp3 несколько подключений к базе данных с плагином не загружается
Я пытаюсь загрузить некоторые данные из модели плагина, который использует другую базу данных. Я добавил запись в моем config / app.php следующим образом:
/**
* The test connection is used during the test suite.
*/
'alternate1' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'alt_user',
'password' => '********',
'database' => 'secondary_db',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_TEST_URL', null),
],
В своем плагине класс /plugins/Importer/src/Model/LogsTable.php я добавил
public static function defaultConnectionName() {
return 'alternate1';
}
Теперь я хотел бы иметь возможность доступа к этим данным с контроллеров моих основных приложений, поэтому я попробовал это:
в /src/Controllers/ReviewController.php
$this->loadModel('Importer.Logs');
$logCount = $this->Logs->find('all')->count();
Если я проверю модель, как это:
print_r($this->Logs);
Я вижу, что он все еще использует соединение по умолчанию, а не соединение alternate1.
Cake\ORM\Table Object ( [registryAlias] => Importer.Logs [table] => logs [alias] => Logs [entityClass] => \Cake\ORM\Entity [associations] => Array ( ) [behaviors] => Array ( ) [defaultConnection] => default [connectionName] => default )
Я также пробовал TableRegistry::get('Importer.Logs') и несколько других вариантов, но в итоге я не могу заставить Cake правильно загрузить правильное соединение для передачи данных.
Мне здесь не хватает чего-то простого, я просто знаю это. Этот ответ: CakePHP 3 defaultConnectionName в модели плагина не работает, кажется, что я хочу, но это не правильно. Я уже использую формат Namespace.Model.