gpt4 book ai didi

php - 交响乐 3.4 : RecursiveValidator or TraceableValidator?

转载 作者:可可西里 更新时间:2023-11-01 00:12:26 24 4
gpt4 key购买 nike

我的服务有问题。

 <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;
}

问题是:

  • ENV_DEV,验证器必须是TraceableValidator
  • 的一个实例
  • ENV_PROD,验证器必须是RecursiveValidator
  • 的一个实例

你知道我为什么有这个冲突吗?

在带有 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 没有解决问题。

感谢您的帮助。

最佳答案

您应该始终(如果可用)提示接口(interface),而不是提示实现。在这种情况下,RecursiveValidatorTraceableValidator实现 ValidatorInterface .

所以你的构造函数应该是这样的:

public function __construct(RequestStack $requestStack, ValidatorInterface  $validator)
{
$this->request = $requestStack->getCurrentRequest();
$this->validator = $validator;
}

关于php - 交响乐 3.4 : RecursiveValidator or TraceableValidator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com