多个数据库连接 Yii2 不工作

Multiple database connection Yii2 not working

Yii::setAlias('@tests', dirname(__DIR__) . '/tests');

$params = require(__DIR__ . '/params.php');
$db = require(__DIR__ . '/db.php');
$dbPusat = require(__DIR__ . '/dbPusat.php');
$dbPaperless = require(__DIR__ . '/dbPaperless.php');

return [
    'id' => 'basic-console',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log', 'gii'],
    'controllerNamespace' => 'app\commands',
    'modules' => [
        'gii' => 'yii\gii\Module',
    ],
    'components' => [
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
        'db' => $db,
        'dbPusat' => $dbPusat,
        'dbPaperless' => $dbPaperless,
    ],
    'params' => $params,
];

在我的 console.php 中,我有 3 个连接,分别是 db、dbPusat 和 dbPaperless。 对于 db 和 dbPusat,它的工作非常完美。但对于 dbPaperless,它未被检测到。当我想从该连接生成模型时,出现这样的错误。

请帮助我,谢谢。

从配置格式来看,我假设您是基于基本应用程序的。在您的解释中,您在 "your console.php-config you have defined 3 connections" 中提到了这一点。这些仅适用于控制台。

您添加的屏幕截图清楚地显示了一个网络界面。因此我只能得出结论,您没有在 web.php-config 中添加相同的 3 个连接。

当您在命令行上开始一个操作时(通过 ./yii,基本应用程序使用 console.php,当您通过浏览器进入应用程序时它使用 web.php

所以基本上:将您的连接配置复制到 web.php 中,您应该没问题。