1

我正在使用 CakePHP 2.2.4 和 Mongodb 2.2.2

我已经解决了几个问题,但在我的 cakephp 主页上出现以下错误

Strict (2048): Declaration of MongodbSource::execute() should be compatible with DboSource::execute($sql, $options = Array, $params = Array) [APP/Plugin/Mongodb/Model/Datasource/MongodbSource.php, line 36]

对于这些函数声明,我得到了类似的错误

  • MongodbSource::query()
  • MongodbSource::create()
  • MongodbSource::read()
  • MongodbSource::update()
  • MongodbSource::delete()
  • MongodbSource::calculate()
  • MongodbSource::group()
  • MongodbSource::dropSchema()
  • MongodbSource::describe()

MongodbSource 扩展了 DbSource

在 DbSource 中:

public function execute($sql, $options = array(), $params = array()) { <code here> }

在 Mongodb 来源:

public function execute($query, $params = array()) { <code here> }

我有点明白发生了什么,但我不知道如何解决它。

4

1 回答 1

1

覆盖父方法的方法应该实现相同的参数,即你的execute方法签名MongodbSource应该是:

public function execute($sql, $options = array(), $params = array())

也可以看看:

方法声明应与 PHP 中的父方法兼容

https://www.google.com/search?q=php+Declaration+of+should+be+compatible+with

http://php.net/manual/en/migration51.oop.php#migration51.oop-inheritance

于 2012-12-16T06:45:27.820 回答