关于php:如何在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 创建了以下内容:

1
2
3
4
5
<?php
class AppModel extends Model {

    public $useDbConfig = 'development';
}

但是,默认主页告诉我:

Cake is NOT able to connect to the database.

但是,如果我将 /app/Config/database.php 中的配置名称更改为 default,则消息将变为成功消息,就好像它没有选择我的自定义 AppModel 类一样。

我该如何解决这个问题?正如我在上面所做的那样,新的 CakePHP 2.0 文档说要使用 $useDbConfig 属性?

编辑:/app/Config/database.php:

的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
class DATABASE_CONFIG {

    public $development = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'root',
        'password' => '',
        'database' => 'cakephp_db',
        'prefix' => '',
        'encoding' => 'utf8',
    );
}


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

像这样的……

1
2
3
4
5
6
7
8
public function __construct()
{
    if (DEV_SERVER) {
        $this->default = $this->development;
    } else {
        $this->default = $this->production;
    }
}


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

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