在第260行的*** / web / cakephp / lib / Cake / Model / Datasource / DboSource.php中调用未定义的方法DboSource :: connect()

时间:2016-02-24 20:00:53

标签: php cakephp

我正在尝试将Cake PHP应用程序从一台服务器迁移到另一台服务器。我遇到的一个问题是标题中提到的错误。

  

(!)致命错误:调用未定义的方法DboSource :: connect()   第260行的*** / web / cakephp / lib / Cake / Model / Datasource / DboSource.php

第260行读取

if ($autoConnect) {
    $this->connect();
}

我真的不知道这里出了什么问题....在DboSource及其父类中似乎没有connect()方法,为什么它首先被调用?

1 个答案:

答案 0 :(得分:2)

您无法直接使用DboSource课程。您需要使用或创建子类。

使用DboSource从子类调用parent::__construct()的构造函数。例如,Mysql类是DboSource的子类之一,具有connect()方法。致电connect()就是出于此目的。

在这种情况下,通常,DboSource类应声明为abstract,并且应该使用抽象connect()方法。但它不能再改变了。如果CakePHP团队添加了该方法,则可能会破坏userland代码。例如,可以通过在子类中使用connect()来实现Becuase __call()方法。