如何在CakePHP 2.0.2中指定数据库配置


How to specify database configuration in CakePHP 2.0.2?

我刚刚安装了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数据库连接进行此测试。由于没有这样的连接,它失败了。