浏览代码

Fixed bug: DI losses custom method calls

XianN 14 年之前
父节点
当前提交
1fa4b757a6
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      DependencyInjection/AddDependencyCallsPass.php

+ 5 - 2
DependencyInjection/AddDependencyCallsPass.php

@@ -39,8 +39,11 @@ class AddDependencyCallsPass implements CompilerPassInterface
         foreach ($container->findTaggedServiceIds('sonata.admin') as $id => $attributes) {
 
             $definition = $container->getDefinition($id);
-            $calls = array(array('setCode', array($id))) + $definition->getMethodCalls();
-            $definition->setMethodCalls($calls);
+
+            if (!$definition->hasMethodCall('setCode')) {
+                $definition->addMethodCall('setCode', array($id));
+            }
+
             $this->applyDefaults($definition, $attributes);
 
             $arguments = $definition->getArguments();