如何从YAML获取和使用关联数组到Symfony中的操作?

时间:2010-10-16 12:40:42

标签: arrays symfony1 yaml associative

我已经在app.yml中获得了一些移民数据,我想在行动中预告他们。我尝试通过sfConfig :: get('app_datas')获取它们,但它失败了。让我们详细说明:

YAML:

all:
  datas:
    foo: bar
    foo2: bar2

并在actions.class.php中尝试使用此代码:

foreach (sfConfig::get('app_datas') as $key => $value) {

    echo "key $key has value $value";

}

它不起作用,因为sfConfig :: get('app_datas')是NULL,怎么样才能得到它?

2 个答案:

答案 0 :(得分:17)

如果你想要作为一个数组访问第一级,你可以在它们之间引入虚拟级别,就像@jeremy建议的那样。 如果您不希望它实际出现在配置变量名称中,请用点作为前缀:

all:
  .baz:
    datas:
      foo: bar
      foo2: bar2

现在您应该可以使用以下方式访问您的数据:

foreach (sfConfig::get('app_datas') as $key => $value) 
{
  echo "key $key has value $value";
}

答案 1 :(得分:11)

当Symfony加载app.yml配置文件时,它只会存储第二级。因此,您无法直接访问app_datas。如果您想获取包含foofoo2的数组,请创建一个YAML文件,如:

all:
  datas:
    baz:
      foo: bar
      foo2: bar2

然后,您可以sfConfig::get('app_datas_baz')执行包含foofoo2作为键的数组。

在编辑:kuba的方式比假人更好;忘了你能做到的。