我刚安装了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',
);
}
答案 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
数据库连接进行此测试。由于没有这种联系,它失败了。