[英]Symfony 3.4 : RecursiveValidator or TraceableValidator?
我的服務有問題。
<service id="api.api" class="ApiBundle\Service\ApiService">
<argument type="service" id="request_stack"/>
<argument type="service" id="validator"/>
</service>
__construct是:
public function __construct(RequestStack $requestStack, RecursiveValidator $validator)
{
$this->request = $requestStack->getCurrentRequest();
$this->validator = $validator;
}
問題是:
你知道我為什么會有這場沖突嗎?
在帶有RecursiveValidator的ENV_DEV中,我有這個錯誤:
Type error: Argument 2 passed to
ApiBundle\Service\ApiService::__construct() must be an instance of
Symfony\Component\Validator\Validator\RecursiveValidator,
instance of Symfony\Component\Validator\Validator\TraceableValidator
given, called in
var/cache/dev/ContainerLqjid6c/getApi_ApiService.php on line 8
cache:clear
不解決問題。
謝謝您的幫助。
您應始終(如果可用)提示接口,而不是暗示實現。 在這種情況下, RecursiveValidator
和TraceableValidator
實現了ValidatorInterface
。
所以你的構造函數應該是這樣的:
public function __construct(RequestStack $requestStack, ValidatorInterface $validator)
{
$this->request = $requestStack->getCurrentRequest();
$this->validator = $validator;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.