Symfony 2:服务依赖性失败

时间:2017-08-04 10:05:40

标签: php symfony doctrine-orm doctrine symfony-2.7

从昨天开始,我无法理解为什么我的Symfony网站上出现此错误。 我有一项服务取决于其他人。当我尝试使用并注入Symfony doctrine实体管理器时,我有错误。我无法找到办法:(

我的配置:

mycompany_jobs_bundle.processor.crm.product_matrix:
    class: %mycompany_jobs_bundle.processor.crm.product_matrix.class%
    parent: pim_base_connector.processor.product_to_flat_array
    arguments:
      - '@pim_catalog.repository.attribute'
      - '@pim_catalog.localization.factory.date'
      - '@doctrine.orm.default_entity_manager'

(我也试过' doctrine.orm.entity_manager'而不是' @ doctrine.orm.default_entity_manager' - >相同的结果)

然后,在我的服务中:

  • 我添加" 使用Doctrine \ ORM \ EntityManager; "与另一个"使用"线。
  • 这是我的构造函数:

enter image description here

...但我有这个错误:

  

可捕获的致命错误:参数8传递给   MyCompany的\捆绑\ JobsBundle \处理器\ MyCompany的\ ProductWordMatrixProcessor :: __构建体()   必须实现接口   皮姆\分量\目录\库\ AttributeRepositoryInterface,   给出了Doctrine \ ORM \ EntityManager的实例

无论我在哪里移动我的线" EntityManager $ em"我有参数位置的错误。怎么了?我无法理解......

感谢您的帮助

在父服务的yml配置下面的

编辑,pim_base_connector.processor.product_to_flat_array:

pim_base_connector.processor.product_to_flat_array:
   class: %pim_base_connector.processor.product_to_flat_array.class%
   arguments:
       - '@pim_serializer'
       - '@pim_catalog.manager.channel'
       - '@pim_catalog.builder.product'
       - ['pim_catalog_file', 'pim_catalog_image']
       - %pim_catalog.localization.decimal_separators%
       - %pim_catalog.localization.date_formats%
       - '@akeneo_storage_utils.doctrine.object_detacher'

2 个答案:

答案 0 :(得分:1)

尝试将EntityManaer作为构造函数参数的最后一个参数移动,如下所示:

db.collection.aggregate([
  {$match:
    {'actionName': 'clear'},
  {$group:
     {_id: "$actionName",
     total_count:{ $sum: "$countUse"}}}
])

您需要维护在配置

中声明的依赖项的顺序

答案 1 :(得分:0)

您的构造函数有10个参数,并且所有参数都应该配置。您只指定了7.您还必须指定最后3并检查订单。这很重要。