我想要做的是在development_db和local_db之间切换。 在索引页面中,有一个数据库列表,我可以选择,如果我单击列表上的数据库名称,整个应用程序将更改为我选择的特定数据库。 我做的是,我在我的控制器中设置了一个会话变量,当database.php加载时会读取,但我的问题是我无法使用
$this->Session->read();
在database.php文件上。有没有一种方法,database.php文件可以读取我的会话变量?
答案 0 :(得分:0)
您可以在Controller中使用Cake的Configure::write()
/ Configure::read()
,然后在database.php
文件中访问它 - 如下所示:
//controller
Configure::write('DEV', true);
//database
function __construct() {
$dev = Configure::read('DEV');
if($dev) $this->default = $this->dev;
}
function DATABASE_CONFIG() {
$this->__construct();
}
另一种选择:
另一种方式(我们目前的方式)是检查$_SERVER['DEV']
。只需将其设置在httpd-vhosts.conf
文件中(如果使用wamp):
<VirtualHost mysite>
DocumentRoot C:\wamp\www\mysite
ServerName mysite
SetEnv DEV 1
</VirtualHost>
这主要来自记忆,所以如果有轻微问题请原谅。我认为这不是一种安全的方法,所以如果你正在处理敏感信息,我会更多地考虑做什么而不是......等等,但是 - 它适用于我们的非敏感目的。