我正在关注https://apigility.org/documentation/content-validation/basic-usage上的教程。但是,当我尝试在ContactResource中注入输入过滤器服务AddressBook \ V1 \ Rest \ Contact \ Validator时,我收到以下错误:
Zend\ServiceManager\Exception\ServiceNotFoundException
File:
/Users/.../src/apigility-tutorials/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:529
Message:
Zend\ServiceManager\ServiceManager::get was unable to fetch or create an instance for AddressBook\V1\Rest\Contact\Validator
我不确定它是否是apigility本身的问题,这就是为什么我在询问上面链接中显示的示例在使用依赖注入时是否真的有用的原因。感谢
答案 0 :(得分:1)
知道了。根据{{3}} doc,输入过滤器是通过Zend\InputFilter\InputFilterPluginManager
注册的,这意味着我必须首先获取InputFilterManager服务,然后按如下方式获取Contact输入过滤器服务:
$inputFilter =
$serviceLocator->get('InputFilterManager')
->get('AddressBook\V1\Rest\Contact\Validator');
感谢您对此进行调查。