zend framework 2:找不到名为 "getServiceLocator" 的插件

zend framework 2 : A plugin by the name "getServiceLocator" was not found

我是ZF2新手

今天我试图实现一个简单的数据库操作。我指的是 https://framework.zend.com/manual/2.4/en/user-guide/database-and-models.html.

但我收到以下错误

在插件管理器中找不到名为 "getServiceLocator" 的插件 Zend\Mvc\Controller\PluginManager

我错过了什么?

请注意: ZF2 长期以来一直在警告代码中使用 $this->getServiceLocator() 的贬值,因此我们应该尊重它。

但我们中仍然有一些项目已经使用旧代码开发,我们现在无法更改所有这些,因此必须找到此解决方案。

尝试将 "zendframework/zend-mvc": "2.6.3" 添加到 require 列表下的 composer.json 文件,如下所示:

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

这将允许您在控制器中使用 $this->getServiceLocator()

这样做的目的是——即使框架版本开始更新,zend-mvc 在您的代码中将始终保持旧状态并支持使用 $this->getServiceLocator()

我知道他们中的大多数人不会喜欢这种用法,但它肯定会帮助那些无法 upgrade/modify 他们的代码的人。

希望对大家有所帮助。