Symfony3配置组件验证



社区我需要你的帮助。我有配置文件:

payments:
methods:
paypal:
enabled: false
allowed_countries:
- <country>
- ...
credit_card:
disallowed_countries:
- <country>
- ...

如果arrayNode只包含两个允许的数组中的一个,我如何使用TreeBuilder进行验证:allowed_countriesallowed_nationries,如果同时有两个数组,则抛出异常?Symfony 3.2版

通过使用ExprBuilder的验证规则,您可以向配置树生成器添加更复杂的验证。

这看起来像:

$rootNode
->isRequired()
->validate()
->ifTrue(function($options) {
return !($options['allowed_countries'] xor $options['disallowed_countries']);
})
->thenInvalid('Either define allowed_countries or disallowed_countries, not both')
->end()
->children()
->arrayNode('allowed_countries')
->scalarPrototype()->end()
->end()
->arrayNode('disallowed_countries')
->scalarPrototype()->end()
->end()
->end();

相关内容

  • 没有找到相关文章

最新更新