Symfony 日期约束不允许缺少字段,即使该字段不是必需的

Symfony Date Constraint does not allow missing field even though the field is not required

我在这里实例化一个约束集合来验证我正在构建的 API 的请求主体。我的想法是只验证 birthdate 参数的格式,我不需要它。我遇到的问题是,当我没有在请求正文中传递 birthdate 时,它会抛出一个缺少字段的错误。基本上它将其视为必填字段。 不知道为什么。

$constraint = new Collection([
  'fields' => [
    'birthdate' => [
      new Date(message: 'Please use YYYY-MM-DD format!'),
    ],
  ],
  'allowMissingFields' => false,
  'allowExtraFields' => true,
]);

一开始我并没有想到,但是根据@jean-max的评论,我认为在这种情况下你应该将一个字段设为可选,因为默认配置是required.是的,这就是答案:

$constraint = new Collection([
  'fields' => [
    'birthdate' => [
      new Optional([
         new Date(message: 'Please use YYYY-MM-DD format!'),
      ]),
    ],
  ],
  'allowMissingFields' => false,
  'allowExtraFields' => true,
]);