我正在尝试在相同的服务器上运行相同的代码库,但是不同的环境设置,我想要实现的非常简单: 如果用户转到:https://server/app:这会加载生产环境 如果用户访问:https://server/app-test:这会加载开发环境,我唯一需要加载的就是数据库连接。
有没有可行的方法呢?
由于
答案 0 :(得分:-1)
您似乎有两个不同的目录,如果是这样,请在两个应用程序上使用两个不同的连接。
或者
我认为您正在尝试实现以下目标:
一个应用程序和不同的数据库连接。如果这是正确的,请继续执行以下步骤:
创建数据库连接,比如配置目录中的db.php
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=dbname',
'username' => 'user',
'password' => 'password',
'charset' => 'utf8',
];
?>
在您的web.php文件中,在组件部分下调用文件db2.php:
'db2' => require(__DIR__ . '/db2.php'),
无论您想在何处使用此数据库连接,都要使用db2连接覆盖默认数据库连接:
class X extends ActiveRecord {
public static function getDb() {
return Yii::$app->get('db2'); // second database
}
public $ids;
/**
* @inheritdoc
*/
public static function tableName() {
return 'dbName';
}
/**
* @inheritdoc
*/
public function rules() {
return [
// Rules as per your Database
];
}
/**
* @inheritdoc
*/
public function attributeLabels() {
return [
'id' => 'ID',
];
}
}
请注意,我在X模型中使用了此连接。