我在这里实例化一个约束集合,以验证我正在构建的API的请求主体。我的想法是只验证出生日期参数的格式,我不需要它是必需的。我遇到的问题是,当我没有在请求正文中传递出生日期时,它会抛出一个缺少字段的错误。基本上将其视为必填字段。我不知道为什么。
$constraint = new Collection([
'fields' => [
'birthdate' => [
new Date(message: 'Please use YYYY-MM-DD format!'),
],
],
'allowMissingFields' => false,
'allowExtraFields' => true,
]);
起初我并没有想到这一点,但在@jean-max评论之后,我认为在这种情况下应该让一个字段是可选的,因为默认配置是必需的。所以,是的,这就是答案:
$constraint = new Collection([
'fields' => [
'birthdate' => [
new Optional([
new Date(message: 'Please use YYYY-MM-DD format!'),
]),
],
],
'allowMissingFields' => false,
'allowExtraFields' => true,
]);