Symfony Validator 中的数组字段存在

Array field presence in Symfony Validator

Symfony Validator 如何处理数组中的键必须存在但值可以为空的情况? This doc 说的是 Optional 约束,但是这个约束允许数组中缺少键。

假设我的代码需要以下结构:

['foo'=>'bar', 'baz'=>'']

当缺少 baz 密钥时,如何让验证器发出投诉?它可以是空的。如果它不为空,还有什么方法可以确保它遵循约束?

例如 Laravel 有 present constraint。我真的必须手动编码 array_key_exists 吗?一定是很常见的情况。

是否也可以通过元素的原型来验证集合,就像配置组件可以做的那样?

您可以遵循 this doc 并实施回调验证断言并执行 array_key_exist 或遵循相同的逻辑并添加 allowMissingFields 选项。