1

さまざまなキーを持つことができる配列があります。ただし、必要なキーは常に 2 つ存在します。現在、OptionsResolver コンポーネントを使用しています。余分なキーがなくなるまでは正常に動作します。Validator コンポーネントも検討しましたが、同じ動作があることを理解しました。したがって、常にキーの完全なリストを設定する必要がありますが、上で書いたように、それらの一部のみを検証する必要があります。この問題を解決する方法はありますか?

ありがとう!

4

1 に答える 1

2

こんにちは、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',
]

設定しないrequired1required2、解決された配列にない場合、Symfony\Component\OptionsResolver\Exception\MissingOptionsException例外が発生します。不明なオプション (setRequired、setOptional、または setDefaults で定義されていない) を指定すると、Symfony\Component\OptionsResolver\Exception\InvalidOptionsException例外が発生します。

Validator コンポーネントも検討しましたが、理解したとおり、同じ動作があります

どの値を「必須」にするかを決めることができます...しかし、あなたが正確に何を意味するかはわかりません

于 2013-04-21T17:27:37.600 に答える