【发布时间】:2014-02-06 07:50:45
【问题描述】:
我有一个名为 CLIENT_URL 的常量值
关于助推器:
$clienturl = explode('/', $_SERVER['REQUEST_URI']);
define("CLIENT_URL",$clienturl[2]);
我已经调试过了,例如,'client1' 或 'client2' 等。 我在定义配置数组的时候需要用到那个值,比如:
关于数据库.php
class DATABASE_CONFIG {
var $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => '*****',
'password' => '****',
'database' => 'client3',
'prefix' => ''
);
var $clientdb = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => '****',
'password' => '****',
'database' => 'client3',
'prefix' => ''
);
public function __construct() {
debug('constant value: '.CLIENT_URL);
debug($this->default['database']);
$this->default['database'] = CLIENT_URL; // This line does nothing !!
//$this->clientdb['database'] = CLIENT_URL; // This lines prevent connection, error: Database connection "Mysql" is missing, or could not be created !!
$this->default = $this->clientdb;
debug($this->default['database']);
}
};
但是,数据库保持不变,它保持上面的初始值。 其实我可以做到:
$this->default['database'] = 'whatever';
它甚至不会尝试查找“任何”数据库;看来这个作业缺少一些重新加载或什么?
在__construct上赋值后,
我已经调试过了
debug($this->default['database']);
在分配之前和之后,它不会改变。 它只会改变这样做:
$this->clientdb['database'] = CLIENT_URL; // Instead of $this->default['database'] = CLIENT_URL;
然后连接失败。
请注意,该应用确实连接到一开始给出的数据库('client3'),它只是不切换。 我通过查找检查数据库,它总是从同一个数据库返回相同的记录,没有开关。
$options = array('conditions' => array('User.id' => 1));
$clientArray = $this->User->find('first', $options);
感谢您的任何指点。
【问题讨论】:
标签: php cakephp configuration constants