如何在database.php文件上使用会话

时间:2013-05-21 14:26:36

标签: php database cakephp

我想要做的是在development_db和local_db之间切换。 在索引页面中,有一个数据库列表,我可以选择,如果我单击列表上的数据库名称,整个应用程序将更改为我选择的特定数据库。 我做的是,我在我的控制器中设置了一个会话变量,当database.php加载时会读取,但我的问题是我无法使用

$this->Session->read(); 

在database.php文件上。有没有一种方法,database.php文件可以读取我的会话变量?

1 个答案:

答案 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>

这主要来自记忆,所以如果有轻微问题请​​原谅。我认为这不是一种安全的方法,所以如果你正在处理敏感信息,我会更多地考虑做什么而不是......等等,但是 - 它适用于我们的非敏感目的。