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

时间:2011-11-03 14:00:35

标签: php cakephp cakephp-2.0 cakephp-appmodel

我刚安装了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',
    );
}

2 个答案:

答案 0 :(得分:13)

就像dhofstet解释的那样,你仍然需要一个默认的配置。我所做的是在DATABASE_CONFIG类中添加一个构造函数,以便在数据库配置之间切换。

像这样......

public function __construct()
{
    if (DEV_SERVER) {
        $this->default = $this->development;
    } else {
        $this->default = $this->production;
    }
}

答案 1 :(得分:2)

您的数据库配置很可能是正确的。

“Cake无法连接到数据库”的原因。显示,是因为检查它是否可以连接到数据库(/lib/Cake/View/Pages/home.ctp)的脚本仅使用default数据库连接进行此测试。由于没有这种联系,它失败了。