【问题标题】:How to specify database configuration in CakePHP 2.0.2?如何在 CakePHP 2.0.2 中指定数据库配置?
【发布时间】:2011-11-03 14:00:34
【问题描述】:

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

【问题讨论】:

  • 你能显示你的database.php吗?
  • 当然。我已经编辑了问题以显示文件的内容。

标签: php cakephp cakephp-2.0 cakephp-model


【解决方案1】:

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

这样的……

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

【讨论】:

  • 我看到了这个信息,也许这就是我要找的。这适用于哪个 cakephp # ?你还在 database.php 中使用它吗?
  • @zeflex 它适用于版本 1 和 2。是的,这在 Config/database.php 文件中的 DATABASE_CONFIG 类中。
【解决方案2】:

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

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

【讨论】:

  • 是的。我可以确认是这种情况。尽管默认索引页面报告 CakePHP 无法连接到我的数据库,但其他控制器能够正常访问和返回数据。谢谢。
猜你喜欢
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-13
相关资源
最近更新 更多