1

我正在寻求有关我尝试在 Symfony 2.1 中实现的自定义配置参数的帮助

我是新人,但到目前为止与 Symfony 合作一直很棒。我现在正在尝试使用config.yml.

我试图定义的参数是一系列默认金额,例如在我的配置中

mymain:
    default_values: [1, 2, 3, 4]

现在有了类似的东西,您将如何正确使用 treebuilder 添加节点并正确处理配置?

我尝试的是

$rootNode
    ->children()
        ->enumNode('default_values')
            ->values(array(1, 2))
        ->end()
    ->end();

有了这个我得到以下异常:

路径“mymain.defaults”的类型无效。预期的标量,但得到了数组。

我希望配置是可选的,具有我指定的默认后备数组序列。

我也尝试过arrayNode,但我相信这是用于映射或具有键值对的数组,我只是想配置一个数字序列。

4

1 回答 1

2

据我所知, enumNode 只允许您在给定的一值中设置一个值。default_values在您的示例中,有效值为12但不是数组。

以下配置允许您设置具有默认值的数值数组,以防万一default_values被省略。

$rootNode
    ->children()
        ->arrayNode('default_values')
            ->defaultValue(array(2,3))
            ->prototype('scalar')
                ->validate()
                    ->ifTrue(function($v){ return !is_numeric($v); })
                    ->thenInvalid('%s is not a number')
                ->end()
            ->end()
        ->end()
    ->end();

我希望是你需要的。

于 2012-08-14T03:25:31.137 回答