2013-03-16 83 views
6

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

预先感谢您..

回答

0

您可以见好就收默认在database.php文件,以及所使用的型号为空datasourse设置,指定它并不需要在数据库对应的表像下:

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

使用CakePHP 2.3.x版本,我只是用一个空字符串作为数据库配置一个数据源,它工作正常。

数据库配置(应用程序/配置/ database.php中)几乎是空的,它看起来像这样:

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

你必须告诉你的AppModel不使用数据库表,否则你会出现错误:“Datasource class could not be found”。仅在后代模型中设置$ useTables是不够的。

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

我还没有遇到任何问题。

+5

你好,类DATABASE_CONFIG { \t公共$默认=阵列( \t \t \t \t '数据源'=> '', \t \t \t \t); }是我的数据库文件。也公开$ useTable = false设置它仍然给出错误。 “DataSource类可能不会被发现。” – 2014-01-29 13:47:36

2

CakePHP的实际尝试连接到数据库,无论您不要使用表格 因此采用这种

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

它仅仅是一个错误,在创建CakePHP程序是小菜一碟。为了在没有数据库的情况下开始开发,您需要执行以下步骤。

  1. 制造假DBO源

在app /型号/数据源/ 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

+0

不工作的CakePHP的-2.3 – sumitkanoje 2013-10-01 15:32:18

+0

你应该使用App ::使用( 'DboSource', '型号/数据源');在模型中,其他明智给出错误[Class'DboSource'not found] – sumitkanoje 2013-10-01 16:54:29

+0

我还不确定,因为这个解决方案在CakePHP 2.0上测试过 – 2013-10-02 17:49:51

相关问题