TroodoN-Mike
TroodoN-Mike

Reputation: 16175

Symfony2 Container merge/add parameters to the specific key

I have a Container:

$newContainer = new ContainerBuilder();

I load some parameters:

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

And my container looks like this:

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

        )

Now i do the merge:

$container->merge($newContainer);

And my merge looks like this - print_r($container):

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

How can merge my container so i have this??:

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

Please help...

Upvotes: 1

Views: 1352

Answers (1)

TroodoN-Mike
TroodoN-Mike

Reputation: 16175

Dont use merge, use add():

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

I didnt know there are methods hidden after $container->getParameterBag(), you can use: ->all(), set(), has(), get() etc. Very useful. Thanks

Upvotes: 1

Related Questions