我有一个数组,可以有不同的键。但是,始终存在两个必需的密钥。我现在使用OptionsResolver组件。它工作正常,直到没有任何额外的密钥。我还考虑了Validator组件,据我所知,也有相同的行为。因此,我需要始终设置完整的密钥列表,但正如我在上面所写的,我只需要验证其中的一部分。有没有办法解决这个问题?
谢谢!
发布于 2013-04-22 01:27:38
您好,您可以在OptionResolver中定义required、optional和defaults。也许我会给你一些例子,这样会比描述它更容易:
$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异常。如果我们给出了未知选项(没有在setRequired、setOptional或setDefaults中定义),那么我们就会得到Symfony\Component\OptionsResolver\Exception\InvalidOptionsException异常。
我也考虑过验证器组件,据我所知,也有相同的行为
你可以决定哪些值应该是“必需的”...但我不确定我是否完全明白你的意思
https://stackoverflow.com/questions/16133820
复制相似问题