首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OptionsResolver组件和extra选项

OptionsResolver组件和extra选项
EN

Stack Overflow用户
提问于 2013-04-22 01:03:49
回答 1查看 1.5K关注 0票数 1

我有一个数组,可以有不同的键。但是,始终存在两个必需的密钥。我现在使用OptionsResolver组件。它工作正常,直到没有任何额外的密钥。我还考虑了Validator组件,据我所知,也有相同的行为。因此,我需要始终设置完整的密钥列表,但正如我在上面所写的,我只需要验证其中的一部分。有没有办法解决这个问题?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-22 01:27:38

您好,您可以在OptionResolver中定义required、optional和defaults。也许我会给你一些例子,这样会比描述它更容易:

代码语言:javascript
复制
$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'
   ]
);

然后,选项将如下所示

代码语言:javascript
复制
[
  'defaultValue' => '123',
  'required1' => 'test',
  'required2' => 'test123',
  'optional1' => 'opt',
]

如果我们没有在解析数组中设置required1required2,那么我们就会得到Symfony\Component\OptionsResolver\Exception\MissingOptionsException异常。如果我们给出了未知选项(没有在setRequired、setOptional或setDefaults中定义),那么我们就会得到Symfony\Component\OptionsResolver\Exception\InvalidOptionsException异常。

我也考虑过验证器组件,据我所知,也有相同的行为

你可以决定哪些值应该是“必需的”...但我不确定我是否完全明白你的意思

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16133820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档