我有一个可以有各种键的数组。但是,始终存在两个必需的键。我现在使用 OptionsResolver 组件。它工作正常,直到没有任何额外的键。我还考虑了 Validator 组件,据我所知,存在相同的行为。所以我总是需要设置完整的键列表,但正如我上面写的,我只需要验证其中的一些。有没有办法解决这个问题?
谢谢!
我有一个可以有各种键的数组。但是,始终存在两个必需的键。我现在使用 OptionsResolver 组件。它工作正常,直到没有任何额外的键。我还考虑了 Validator 组件,据我所知,存在相同的行为。所以我总是需要设置完整的键列表,但正如我上面写的,我只需要验证其中的一些。有没有办法解决这个问题?
谢谢!
您好,您可以在 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
异常。如果我们给出不知道的选项(未在 setRequired、setOptional 或 setDefaults 中定义),那么就会出现Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
异常。
我还考虑了 Validator 组件,据我所知,存在相同的行为
你可以决定哪些值应该是“必需的”......但不确定我是否明白你的意思