我刚刚安装了CakePHP 2.0.2用于一个新项目。我试图使用一个名为development
的数据库配置,但我的模型似乎没有捡起它。
基于CakePHP 2的新目录和文件名约定,我在/app/Model/AppModel.php
创建了以下内容:
<?php
class AppModel extends Model {
public $useDbConfig = 'development';
}
但是,默认主页告诉我:
Cake无法连接到数据库。
然而,如果我将/app/Config/database.php
中的配置名称更改为default
,则消息更改为成功消息,好像它没有选择我的自定义AppModel
类。
我该如何补救?正如新的CakePHP 2.0文档所说,使用$useDbConfig
属性,就像我上面所做的那样?
编辑:/app/Config/database.php
目录:
class DATABASE_CONFIG {
public $development = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'cakephp_db',
'prefix' => '',
'encoding' => 'utf8',
);
}
就像dhofstreet解释的那样,您仍然需要一个默认配置。我所做的是向DATABASE_CONFIG类添加一个构造函数,以便在数据库配置之间切换。
像这样…
public function __construct()
{
if (DEV_SERVER) {
$this->default = $this->development;
} else {
$this->default = $this->production;
}
}
您的数据库配置很可能是正确的。
之所以显示"Cake is NOT able connect to database.",是因为检查它是否可以连接到数据库(/lib/Cake/View/Pages/home.ctp
)的脚本只使用default
数据库连接进行此测试。由于没有这样的连接,它失败了。