7

在少数项目中我们不需要数据库,那么我们如何在本地机器上设置 cakephp 而无需修改数据库配置?现在我做了什么......我创建了数据库并修改了配置文件。但是我的数据库没有表,它只是浪费数据库......所以请提出更好的方法来做到这一点。

先感谢您..

4

3 回答 3

4

在 CakePHP 2.3.x 中,我只需在数据库配置中使用一个空字符串作为数据源,它就可以正常工作。

数据库配置(app/Config/database.php)几乎是空的,它看起来像这样:

class DATABASE_CONFIG {
    public $default = array(
        'datasource' => '',
    );
}

你必须告诉你的 AppModel 不要使用数据库表,否则你会得到一个错误:“找不到数据源类”。仅在后代模型中设置 $useTables 是不够的。

class AppModel extends Model {
    public $useTable = false;
}

我还没有遇到任何问题。

于 2013-09-08T19:22:26.087 回答
2

无论您不使用表,Cakephp 实际上都会尝试连接到数据库,因此使用它

class MyModel extends AppModel {
    public $useTable = false;
}

这只是一个错误,在 cakephp 上创建应用程序是小菜一碟。为了在没有数据库的情况下开始开发,您必须执行以下步骤。

  1. 创建伪造的 dbo 源

在 app/Model/Datasource/Dbo/ 中创建文件 DboFakeDboSource.php 并将以下代码放入其中

class DboFakeDboSource extends DboSource {
  function connect() {
    $this->connected = true;
    return $this->connected;
  }
  function disconnect() {
    $this->connected = false;
    return !$this->connected;
  }
}
  1. 设置默认连接

下一步是告诉 cakephp 默认使用 dbo 源。去改变database.php中的默认连接是这样的

var $default = array(
  'driver' => 'FakeDboSource'
);
  1. 微调模型

第三步是确定 $useTable = false; 包含在每个模型中,因此将其添加到 AppModel.php

于 2013-09-08T23:25:57.000 回答
0

You can just leave default datasourse settings empty in database.php and for Models you use, specify that it doesn't need corresponding table in DB like following:

class MyModel extends AppModel {
    public $useTable = false;
}
于 2013-03-16T13:23:43.813 回答