【发布时间】:2023-03-25 13:06:01
【问题描述】:
在少数项目中我们不需要数据库,那么我们如何在本地机器上设置 cakephp 而无需修改数据库配置?现在我做了什么......我创建了数据库并修改了配置文件。但是我的数据库没有表,它只是浪费数据库......所以请提出更好的方法来做到这一点。
提前谢谢你..
【问题讨论】:
标签: cakephp-2.1
在少数项目中我们不需要数据库,那么我们如何在本地机器上设置 cakephp 而无需修改数据库配置?现在我做了什么......我创建了数据库并修改了配置文件。但是我的数据库没有表,它只是浪费数据库......所以请提出更好的方法来做到这一点。
提前谢谢你..
【问题讨论】:
标签: cakephp-2.1
无论你不使用表,Cakephp 实际上都会尝试连接到数据库 所以使用这个
class MyModel extends AppModel {
public $useTable = false;
}
这只是一个错误,在 cakephp 上创建应用程序是小菜一碟。为了在没有数据库的情况下开始开发,您必须执行以下步骤。
在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;
}
}
下一步是告诉 cakephp 默认使用 dbo 源。去把database.php中的默认连接改成这样
var $default = array(
'driver' => 'FakeDboSource'
);
第三步是确定$useTable = false;包含在每个模型中,所以在 AppModel.php 中添加它
【讨论】:
在 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.php 中将默认数据源设置留空,对于您使用的模型,指定它不需要 DB 中的相应表,如下所示:
class MyModel extends AppModel {
public $useTable = false;
}
【讨论】: