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::クエリ()
  • 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> }

MongodbSource で:

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 に答える