我正在努力研发不使用数据库的应用程序,但它仍然有一些模型。
第一个问题:但是,如果要查看数据库的配置(APP/Lib/Cake/Model/ConnectionManager.php,第69行),它会尝试包含Config/database文件。php。
如果文件不存在,我得到2个警告。如果它存在(即使它完全是空的)都可以。我想澄清的是,这甚至是在没有模型的情况下发生的。
第二个问题:如果我尝试使用模型,我会得到错误:
Missing Datasource Configuration
Error: The datasource configuration default was not found in database.php.
无论Config/database.php文件是否存在,该文件是否不存在,都会发生这种情况。
最后,我指定模型(包括AppModel)的属性$useTable设置为false,但这似乎没有什么区别。
但我注意到,在使用数据库的应用程序中,只有少数模型不使用数据库(但整个应用程序都使用数据库),所有功能都正常工作。
我发现了这一点,它提出了一个解决方案,这就是在web上找到的解决方案。
但在下面的评论中,我看到洛伦佐说:
这根本没有任何意义,CakePHP 2.0不会尝试执行任何数据库连接,除非您请求它这样做
在我看来,它还没有,也许CakePHP不执行任何查询,但仍然希望配置一个数据库。是这样吗?还是我错过了什么?
非常感谢。
但是,CakePHP在实际需要时才尝试连接到数据库;
\u call()
方法;此方法将首先检查行为是否能够处理调用,否则将调用数据库。例如,使用$this-
示例
class PostsController extends AppController {
// This controller does not use a Model
public $uses = false;
public function index() {
// CakePHP will construct a 'Post' model here
$this->Post->find('something');
}
}
话虽如此。在大多数情况下,最好让您的模型使用数据源;数据源不一定是数据库,也可以是(例如)Twitter Feed
或静态Array()
。
拥有数据源可以简化大多数任务(例如,您只需执行查找(......)
即可从数据源获取数据,无论该数据源是否为数据库。