How to get and use associative array from YAML to action in Symfony?
Solution 1
When Symfony loads app.yml
config files, it only stores the 2nd level down. So you can't access app_datas
directly. If you want to get an array containing foo
and foo2
, make a YAML file like:
all:
datas:
baz:
foo: bar
foo2: bar2
You can then do sfConfig::get('app_datas_baz')
which will be an array containing foo
and foo2
as keys.
On Edit: kuba's way is better than a dummy; forgot you could do that.
Solution 2
If you want to access first level as an array you can introduce dummy level in between, just like @jeremy suggested. Prefix it with a dot if you don't want it to actually appear in config the variable names:
all:
.baz:
datas:
foo: bar
foo2: bar2
Now you should be able to access your data with:
foreach (sfConfig::get('app_datas') as $key => $value)
{
echo "key $key has value $value";
}
Related videos on Youtube
quardas
Updated on May 06, 2022Comments
-
quardas about 2 years
Ive got in app.yml some configration data, and I want to foreach them in action. I try do this by get them by sfConfig::get('app_datas') but it fails. Lets show them in details:
YAML:
all: datas: foo: bar foo2: bar2
and in the actions.class.php I try use this code:
foreach (sfConfig::get('app_datas') as $key => $value) { echo "key $key has value $value"; }
it doesnt work because sfConfig::get('app_datas') is NULL, how simly get it?
-
Timm over 12 yearsway to go, kuba - saved my day on a hard deadline!
-
halfer about 12 yearsMinor correction: the dotted value on the second line (.baz) should have a colon suffix, same as the other lines. (I'll make an edit).