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,
]);
我在这里实例化一个约束集合来验证我正在构建的 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,
]);