我有一个可以有各种键的数组。但是,始终存在两个所需的键。我现在使用OptionsResolver组件。在没有任何额外的键之前它可以正常工作。我也考虑过Validator组件,据我所知有相同的行为。所以我需要始终设置完整的密钥列表,但正如我上面所写,我只需要验证其中的一些。有没有办法解决这个问题?
谢谢!
答案 0 :(得分:1)
您好,您可以在OptionResolver中定义必需值,可选值和默认值。 也许我会给你一些例子,所以它比描述它更容易:
$resolver = new Symfony\Component\OptionsResolver\OptionsResolver;
$resolver
->setRequired(['required1', 'required2'])
->setOptional(['optional1', 'optional2'])
->setDefaults(['defaultValue' => '123'])
;
$options = $resolver->resolve(
[
'required1' => 'test',
'required2' => 'test123',
'optional1' => 'opt'
]
);
那么选项看起来就像那样
[
'defaultValue' => '123',
'required1' => 'test',
'required2' => 'test123',
'optional1' => 'opt',
]
如果我们未在已解析的数组中设置required1
或required2
,那么我们会遇到Symfony\Component\OptionsResolver\Exception\MissingOptionsException
异常。
如果我们给出not know选项(未在setRequired,setOptional或setDefaults中定义),那么我们得到Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
异常。
我还考虑了Validator组件,据我所知有相同的行为
你可以决定哪些值应该是“必需的”......但不确定我是否明白了你的意思