多个数据库连接 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
中,您应该没问题。
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
中,您应该没问题。