Невозможно использовать несколько баз данных при использовании команд в yii2 - PullRequest
0 голосов
/ 27 февраля 2019

Я использую несколько подключений к базе данных в моей системе (Yii 2).db и db2, db2 соединение с другого сервера базы данных.

Оно работает без перебоев, когда я использую его нормально (в контроллере).но когда я использую его в командах, я получаю эту ошибку

enter image description here

у меня есть это в моем коде

web.php

 $db = require __DIR__ . '/db.php';
 $db2 = require __DIR__ . '/db2.php';

    'components' => [
    'db' => $db,
            'db2' => $db2,
],

db.php

<?php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=attendance',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',

    // Schema cache options (for production environment)
    'enableSchemaCache' => true,
    'schemaCacheDuration' => 60,
    'schemaCache' => 'cache',
];

db2.php

<?php

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=10.50.0.161;dbname=xxx',
    'username' => 'xxx',
    'password' => 'xxxx',
    'charset' => 'utf8',

    // Schema cache options (for production environment)
    'enableSchemaCache' => true,
    'schemaCacheDuration' => 60,
    'schemaCache' => 'cache',
];

Tblprcobiodata.php

class Tblprcobiodata extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface {

    // add the function below:
    public static function getDb() {
        return Yii::$app->get('db2'); // second database
    }

команды / KehadiranController.php

public function actionTest() {
    $biodata = Tblprcobiodata::findAll(['DeptId' => 137]);


    foreach ($biodata as $bio) {
        echo $bio->CONm . '-' . TblRekod::totalSalah($bio->ICNO, 02);
    }

    return ExitCode::OK;
}

1 Ответ

0 голосов
/ 27 февраля 2019

Вам также необходимо добавить db2.php в console.php.Это конфигурация, которая загружается во время консольных команд (как вы можете указать здесь ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...