【问题标题】:How we setup cakephp without database?我们如何在没有数据库的情况下设置 cakephp?
【发布时间】:2023-03-25 13:06:01
【问题描述】:

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

提前谢谢你..

【问题讨论】:

    标签: cakephp-2.1


    【解决方案1】:

    无论你不使用表,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 中添加它

    【讨论】:

    • 你应该使用 App::uses('DboSource', 'Model/Datasource');在模型中,否则会给出错误 [Class 'DboSource' not found]
    • 我还不确定,因为这个解决方案已经在 Cakephp 2.0 上测试过
    【解决方案2】:

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

    数据库配置(app/Config/database.php)几乎是空的,长这样:

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

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

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

    我还没有遇到任何问题。

    【讨论】:

    • 你好,类 DATABASE_CONFIG { public $default = array( 'datasource' => '', ); } 是我的数据库文件。还设置了 public $useTable = false 仍然会出现错误。 “找不到数据源类。”
    【解决方案3】:

    您可以在 database.php 中将默认数据源设置留空,对于您使用的模型,指定它不需要 DB 中的相应表,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 2016-01-21
      • 2018-11-18
      • 2010-10-23
      • 2019-01-02
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多