【发布时间】:2015-04-06 12:33:41
【问题描述】:
我正在一个新的工作场所学习 Symfony2,我的任务是为当前使用基于内联的不良代码而不是 Symfony 验证器和注释的代码添加验证。
我已经为我的模型添加了验证注解,并向我的构造函数添加了一个参数。我还向 service.yml 添加了一个参数,以便将其注入到我的包的类中,但似乎我找不到
@validator
按照 Symfony 文档 (http://symfony.com/doc/current/book/validation.html) 中的描述。如果我正确阅读了文档,我应该能够将 @validator 添加到我的 services.yml 并将其直接提供给我的班级,但是在运行我的测试时,它说找不到服务 @validator:
The service "ugroup_media_personalization.flattening_service"
has a dependency on a non-existent service "validator"
那么我在这里做错了什么?
【问题讨论】:
-
很奇怪,检查服务是否真的加载到容器中从shell启动命令:
php app/console container:debug | grep validator -
不,没有返回...这可能是因为我在捆绑?我知道那家伙谈到在测试中加载内核。我已经在测试文件夹中的 AppKernel.php 中打开以确保验证器包在其中,但我认为它是已经加载的框架包的一部分
-
首先,@validator 应该是正确的服务名称吗?如果不是,用于注入验证器服务的 service.yml 文件中正确的服务名称是什么?
-
你做对了!你的 sf2 安装有些奇怪。是标准版吗?您要查找的服务在 frameworkbundle 中定义。
-
发现问题,我会在一分钟内发布解决方案,framework.validator 配置不是捆绑包的一部分,因此验证未激活