Gottlieb Notschnabel Gottlieb Notschnabel - 2 months ago 46
YAML Question

How to access nested parameter values in Symfony2?

I created a parameter in my


var: test

How can I access this parameter in my
? For example, I want to pass this parameter to all my twig files as a global twig variable:

my_var: %category.var% # throws ParameterNotFoundException


In all the symfony config files I've seen, the entries under 'parameters:' have always been fully qualified. I don't fully understand why this is but it may help you to write the entries in your parameters.yml like this:

category1.var1: xxx
category1.var2: yyy
category1.var3. zzz

category2.subcategory1.var1: 5
category2.subcategory1.var2: 10
category2.subcategory2.var1: foo
category2.subcategory2.var2: bar

... and so on.


I tried pasting the nested parameter from the question into parameters.local.yml in one of my projects and ran a trivial unit test to retrieve that and a fully qualified parameter from the container e.g.

    $testUserEmail = $container->getParameter('');
    $this->assertEquals('', $testUserEmail);
    $testParam = $container->getParameter('category.var');
    $this->assertEquals('test', $testParam);

The fully qualified parameter was fine, attempting to get the nested parameter resulted in an InvalidArgumentException: The parameter category.var must be defined. I don't think parameters can be defined with nesting.