2012-05-23 2 views
1

У меня есть контейнер:Symfony2 Контейнер слияние/добавить параметры для конкретного ключа

$newContainer = new ContainerBuilder(); 

загружают некоторые параметры:

$loader = new YamlFileLoader($newContainer, new FileLocator(__DIR__.'/../Resources/config/newFolder')); 
$loader->load('newParameters.yml'); 

И мой контейнер выглядит следующим образом:

[parameters:protected] => Array 
     (
      [exampleKey => Array 
       (
        [parameter] => something value 
        [anotherParameter] => another value 
       ) 

     ) 

Теперь я делаю слияние:

$container->merge($newContainer); 

И мое слияние выглядит следующим образом - print_r ($ контейнер):

[parameters:protected] => Array 
     (
      [existing] => Array 
       (
       ... 
       ) 
      [existing2] => Array 
       (
       ... 
       )   
      [exampleKey => Array 
       (
        [parameter] => something value 
        [anotherParameter] => another value 
       ) 
      [existing3] => Array 
       (
       ... 
       )  
     ) 

Как объединить мой контейнер таким образом я есть это ??:

[parameters:protected] => Array 
     (
      [existing] => Array 
       (
       ... 
       ) 
      [existing2] => Array 
       (
       ... 
       [exampleKey => Array 
        (
         [parameter] => something value 
         [anotherParameter] => another value 
        )      
       )   
      [existing3] => Array 
       (
       ... 
       )  
     ) 

Пожалуйста, помогите ...

ответ

1

Dont использование слияния, использование добавить():

$container->getParameterBag() 
      ->add(array(
       'existing2' => $newContainer->getParameterBag()->all() 
     )); 

Я не знал, что методы скрыты после $ container-> getParameterBag(), вы можете использовать: -> all(), set(), has(), get() и т. Д. Очень полезно. Спасибо

Смежные вопросы