管理和站点面板的yii2更改数据库
我有以下配置文件 common/main-local.php管理和站点面板的yii2更改数据库,yii2,Yii2,我有以下配置文件 common/main-local.php return [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=aishwariya_basic2', 'username' => 'root', 'password' => '
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=aishwariya_basic2',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
// 'db' => $db,
'db2' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=aishwariya_basic',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
],
// autoloading model and component classes
'import'=> [
'class' => 'yii2-widget-linkpager',
'application.extensions.MyLinkPager.*',
],
],
];
管理员控制器
namespace frontend\controllers;
use Yii;
use frontend\models\Site_login;
use frontend\models\EntryForm_model;
use frontend\models\Asal_page_model;
use frontend\models\Interest_page_model;
use frontend\models\Return_page_model;
use frontend\models\Daily_report_model;
use frontend\models\Changepassword;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use yii\helpers\ArrayHelper;
use yii\db\Query;
class AdminController extends Controller
{
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['index', 'signup'],
'rules' => [
[
'actions' => ['index'],
'allow' => true,
'roles' => ['?'],
],
[
'actions' => ['settings','changepassword'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
/**
* @inheritdoc
*/
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
#####Action index code starts here
public function actionIndex()
{
$this->layout = 'admin';
$my2DbConn = Yii::$app->db;
$model = new Site_login();
if ($model->load(Yii::$app->request->post()) )
{
if ($model->validate()) {
$url = Yii::$app->getUrlManager()->getBaseUrl()."/admin/search";
return $this->redirect($url);
}
}
return $this->render('index', ['model' => $model]);
}
public function actionInitial()
{
$this->layout = 'site';
$my2DbConn = Yii::$app->db2;
$model=new Initial_model();
if ($model->load(Yii::$app->request->post()))
{
}
return $this->render('initial',['model'=>$model]);
}
现场控制员
namespace frontend\controllers;
use Yii;
use frontend\models\Site_login;
use frontend\models\EntryForm_model;
use frontend\models\Asal_page_model;
use frontend\models\Interest_page_model;
use frontend\models\Return_page_model;
use frontend\models\Daily_report_model;
use frontend\models\Changepassword;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use yii\helpers\ArrayHelper;
use yii\db\Query;
class AdminController extends Controller
{
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['index', 'signup'],
'rules' => [
[
'actions' => ['index'],
'allow' => true,
'roles' => ['?'],
],
[
'actions' => ['settings','changepassword'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
/**
* @inheritdoc
*/
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
#####Action index code starts here
public function actionIndex()
{
$this->layout = 'admin';
$my2DbConn = Yii::$app->db;
$model = new Site_login();
if ($model->load(Yii::$app->request->post()) )
{
if ($model->validate()) {
$url = Yii::$app->getUrlManager()->getBaseUrl()."/admin/search";
return $this->redirect($url);
}
}
return $this->render('index', ['model' => $model]);
}
public function actionInitial()
{
$this->layout = 'site';
$my2DbConn = Yii::$app->db2;
$model=new Initial_model();
if ($model->load(Yii::$app->request->post()))
{
}
return $this->render('initial',['model'=>$model]);
}
我想更改属于控制器的数据库。请给我一些帮助。我使用了两个db,但它会访问第一个db文件。您可以在配置中配置更多的db
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=testdb',
'username' => 'demo',
'password' => 'demo',
],
'db2' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=testdb2',
'username' => 'demo2',
'password' => 'demo2',
],
],
];
并获取您的db(如果您希望在controller中使用direct命令,而不是activeRecord,则使用此命令)
或者,您可以使用适当的设置以编程方式进行管理
如果对于您的模型(就像您在代码中所做的那样),您希望使用除db组件之外的其他数据库连接,则应覆盖相关ActiveRecord模型中的getDb()方法(请参阅底部的doc..链接):
并且不分配$my2DbConn=Yii::$app->db代码>在控制器中,这是用于createCommand(直接sql)的,而不是您需要的activeRecord
有关相关参数,请参阅本指南或本参考。您可以在配置中配置更多数据库
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=testdb',
'username' => 'demo',
'password' => 'demo',
],
'db2' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=testdb2',
'username' => 'demo2',
'password' => 'demo2',
],
],
];
并获取您的db(如果您希望在controller中使用direct命令,而不是activeRecord,则使用此命令)
或者,您可以使用适当的设置以编程方式进行管理
如果对于您的模型(就像您在代码中所做的那样),您希望使用除db组件之外的其他数据库连接,则应覆盖相关ActiveRecord模型中的getDb()方法(请参阅底部的doc..链接):
并且不分配$my2DbConn=Yii::$app->db代码>在控制器中,这是用于createCommand(直接sql)的,而不是您需要的activeRecord
有关相关参数,请参阅本指南或本参考资料我们应该在每个操作中指定$my2dbConn?您可以按自己的级别执行。。。如果你在所有动作中使用,或者只在你需要的动作中使用,你也可以在模型中使用,然后使用一个函数来获取模型的数据库,就像指南中一样,什么叫不工作。。。错误。。错误的结果。。用你正在使用的代码更新你的帖子,并解释你的目标。。请在配置文件中配置多个db。并通过$my2DbConn=Yii::$app->db2访问;在每一个行动中。但是它将使用相同的第一个db文件。不通过第二个db2文件来展示您的db和db2配置代码。。以及你使用它们的行动。。(用相关代码更新您的问题…)这样ai可以检查我们应该在每个操作中指定$my2dbConn?您可以按您所期望的级别执行。。。如果你在所有动作中使用,或者只在你需要的动作中使用,你也可以在模型中使用,然后使用一个函数来获取模型的数据库,就像指南中一样,什么叫不工作。。。错误。。错误的结果。。用你正在使用的代码更新你的帖子,并解释你的目标。。请在配置文件中配置多个db。并通过$my2DbConn=Yii::$app->db2访问;在每一个行动中。但是它将使用相同的第一个db文件。不通过第二个db2文件来展示您的db和db2配置代码。。以及你使用它们的行动。。(用相关代码更新您的问题…)以便ai检查