2016-11-14 3 views
0

私はZF2を初めて使っています。zend framework 2: "getServiceLocator"という名前のプラグインが見つかりませんでした

今日、私は単純なデータベース操作を実装しようとしていました。私はhttps://framework.zend.com/manual/2.4/en/user-guide/database-and-models.htmlを指していました。

しかし、私は次のようなエラーに

を取得しています名前「getServiceLocator」により、プラグインは、私が何をしないのですプラグインマネージャのZend \ MVC \コントローラ\ PluginManager

に見つかりませんでしたか?

+0

いくつかのコードを教えていただけたら助かりますか?しかし、あなたはPluginManagerクラスで 'getServiceLocator()'を呼び出そうとしているようですが、あなたは貼り付けたエラーメッセージを見てください。 – Kwido

+0

あなたはあなたのテンプレートの中にそれを呼んでいませんか? – Andrew

+3

ZF 2.5以上をお使いですか?もしそうなら、$ this-> getServiceLocator()を使うことはできません。これは削除されているので、あなたのコントローラで。 – Garry

答えて

1

ちょうどノート:ZF2はコード内$this->getServiceLocator()の使用の減価償却費については、今、長い時間以来、警告しているので、我々はそれを尊重しなければなりません。

まだまだ私たちの中には、すでに古いコードで開発されたプロジェクトがあり、そのすべてを変更することはできないので、この解決策を見つける必要があります。次のようなrequireリストの下composer.jsonファイルに"zendframework/zend-mvc": "2.6.3"を追加

試してみてください。

"require": { 
    .... 
    "zendframework/zendframework": "~2.5", 
    "zendframework/zend-mvc": "2.6.3", 
    .... 
} 

これはあなたがコントローラで$this->getServiceLocator()を利用することができます。

フレームワークのバージョンが更新されても、zend-mvcは常にあなたのコードで古いままで、$this->getServiceLocator()の使用をサポートします。

私は、ほとんどの人がこの使用法が気に入らないことを知っていますが、コードをアップグレード/修正する方法がない人にとっては間違いなく役立ちます。

私はそれが誰かを助けてくれることを願っています。

関連する問題