Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony未加载正确的验证服务_Php_Symfony_Validation_Containers - Fatal编程技术网

Php Symfony未加载正确的验证服务

Php Symfony未加载正确的验证服务,php,symfony,validation,containers,Php,Symfony,Validation,Containers,我使用的是Symfony framework 3.4。目前我正在开发一种验证方法,但突然Symfony验证停止工作,然后我的所有验证都停止工作,然后我运行: php bin/console debug:container 我得到了验证程序服务的以下输出: Service ID ClassName validator alias for "liip_funct

我使用的是Symfony framework 3.4。目前我正在开发一种验证方法,但突然Symfony验证停止工作,然后我的所有验证都停止工作,然后我运行:

php bin/console debug:container
我得到了验证程序服务的以下输出:

 Service ID                             ClassName                         
  validator              alias for "liip_functional_test.validator"
我有以下问题: 这是验证程序服务的正确类名吗? 我会做错什么

我的全部代码如下:
namespace AppBundle\DataTransfer;

use Symfony\Component\Validator\Constraints as Assert;

class ProductFromApi
{

   /**
     * @Assert\IsTrue(message="Testing the validator")
     */
    public function isTestCorrect() : Bool
    {
        return false;
    }
}

它看起来确实像服务“
validator
”是默认symfony验证器之外的别名,不是吗?(特别是“
liip\u功能测试验证程序”
”)

当我在Symfony项目上运行
php-bin/console-debug:container-validator时,我知道该项目没有上面提供的liip包,下面是它为我返回的结果:

Information for Service "debug.validator"
=========================================

 ---------------- ----------------------------------------------------------
  Option           Value
 ---------------- ----------------------------------------------------------
  Service ID       debug.validator
  Class            Symfony\Component\Validator\Validator\TraceableValidator
  Tags             kernel.reset (method: reset)
  Public           no
  Synthetic        no
  Lazy             no
  Shared           yes
  Abstract         no
  Autowired        no
  Autoconfigured   no
 ---------------- ----------------------------------------------------------
如果要按名称从DI容器中获取服务,可能需要将其称为“
debug.validator

也就是说,您可能不应该以这种方式调用验证器

您的
config.yml
中有以下内容,是吗

framework:
    validation: { enable_annotations: true }

是的,我的config.yml上有这个YAML。我从AppKernel中删除了liip_functional_test.validator捆绑包,然后我得到了与您相同的输出,但验证器不工作。我对这种覆盖非常困惑,但在快速搜索后,我发现了类似的问题:是,但问题是,即使我解决了最重要的问题,验证器仍然不能工作。当我运行:php-bin/console-debug:container-validator时,我得到了与答案相同的结果:Cameron-HurdI没有直接使用验证程序服务,我使用的是表单->isValid(),这个表单应该使用验证程序服务。你能分享更多的配置吗?可能是
service.yml
,以及您认为可能相关的
config.yml
摘录?如果控制器中的方法有任何不寻常的地方,那么也可以看到这一点!嗨,我停止了docker,再次编写了docker,现在它开始工作了,这很奇怪,因为我以前做过:php bin/console cache:clear。谢谢大家。