我想要存储在/apps/frontend/modules/builder/config/module.yml
中的大量数据。
我看起来像是:
all:
series_options:
compact:
name: Compact
description: Something small.
enabled: 1
large:
name: Large
description: Bit bigger.
enabled: 0
如果我写这个,在actions.class中:
sfConfig::get('mod_builder_series_options_compact');
我明白了
Array
(
[name] => Compact
[description] => Something small.
[enabled] => 1
)
完美。但我想写下这个:
sfConfig::get('mod_builder_series_options');
提供NULL
。
有什么方法可以让它将完整的关联数组返回到它的全部深度,以便我可以遍历不同的选项吗?
答案 0 :(得分:5)
您可以在其名称前添加一个带有点的级别,以强制某个级别的数组:
all:
.options:
series_options:
compact:
name: Compact
description: Something small.
enabled: 1
large:
name: Large
description: Bit bigger.
enabled: 0
现在您应该可以使用以下方式访问您的设置:
sfConfig::get('mod_builder_series_options');
请记住,模块配置只能在定义的模块中访问。
答案 1 :(得分:1)
典型的,一旦我求助于发布答案,我就会面对面......
$series = sfYaml::load('../apps/frontend/modules/builder/config/module.yml');
print_r($series);die;
返回:
Array
(
[all] => Array
(
[series_options] => Array
(
[compact] => Array
(
[name] => Compact
[description] => Something small.
[enabled] => 1
)
[large] => Array
(
[name] => Large
[description] => Bit bigger.
[enabled] => 0
)
)
)
)
猜测sfConfig并不是真正意味着这个目的,其中sfYaml看起来确实如此!
希望这有助于其他人!