我正在尝试将Cake PHP应用程序从一台服务器迁移到另一台服务器。我遇到的一个问题是标题中提到的错误。
(!)致命错误:调用未定义的方法DboSource :: connect() 第260行的*** / web / cakephp / lib / Cake / Model / Datasource / DboSource.php
第260行读取
if ($autoConnect) {
$this->connect();
}
我真的不知道这里出了什么问题....在DboSource及其父类中似乎没有connect()方法,为什么它首先被调用?
答案 0 :(得分:2)
您无法直接使用DboSource
课程。您需要使用或创建子类。
使用DboSource
从子类调用parent::__construct()
的构造函数。例如,Mysql
类是DboSource
的子类之一,具有connect()
方法。致电connect()
就是出于此目的。
在这种情况下,通常,DboSource
类应声明为abstract
,并且应该使用抽象connect()
方法。但它不能再改变了。如果CakePHP团队添加了该方法,则可能会破坏userland代码。例如,可以通过在子类中使用connect()
来实现Becuase __call()
方法。