两个字段都可以为空,但填写时只需要一个
Both fields can be empty but when filled only one required
我正在 Laravel 制作一个页面并使用表单请求进行验证。我在该页面上有 2 个代码。
- 优惠券代码 2) 促销代码
我想以这样一种方式设置条件,这些代码可以为空,但在填充时只需要一个。
我试过了,但没有得到正确的结果。
return [
'coupon_code' => 'nullable|required_without:promo_code',
'promo_code' => 'nullable|required_without:coupon_code'
];
使用 required if
的验证。
return [
'coupon_code' => 'nullable|required_if:promo_code,==,null',
'promo_code' => 'nullable|required_if:coupon_code,==,null'
];
根据您的描述,很明显您希望允许这三个输入对:
- coupon_code 空,promo_code 空
- coupon_code 值,promo_code 空
- coupon_code 空,promo_code 值
强制执行这 3 对值中的任何一个根本不需要任何验证规则。您可以将这两个规则都设置为可为空,并且没问题。
但从字里行间看,您似乎要求拒绝这个值对:
- coupon_code值,promo_code值
如果是这样,那么您可以使用 prohibited_unless
:
而不是 required
[
'promo_code' => [
'prohibited_unless:coupon_code,null',
],
'coupon_code' => [
'prohibited_unless:promo_code,null',
],
]
这假设您有默认的 ConvertEmptyStringsToNull
中间件。
我正在 Laravel 制作一个页面并使用表单请求进行验证。我在该页面上有 2 个代码。
- 优惠券代码 2) 促销代码
我想以这样一种方式设置条件,这些代码可以为空,但在填充时只需要一个。
我试过了,但没有得到正确的结果。
return [
'coupon_code' => 'nullable|required_without:promo_code',
'promo_code' => 'nullable|required_without:coupon_code'
];
使用 required if
的验证。
return [
'coupon_code' => 'nullable|required_if:promo_code,==,null',
'promo_code' => 'nullable|required_if:coupon_code,==,null'
];
根据您的描述,很明显您希望允许这三个输入对:
- coupon_code 空,promo_code 空
- coupon_code 值,promo_code 空
- coupon_code 空,promo_code 值
强制执行这 3 对值中的任何一个根本不需要任何验证规则。您可以将这两个规则都设置为可为空,并且没问题。
但从字里行间看,您似乎要求拒绝这个值对:
- coupon_code值,promo_code值
如果是这样,那么您可以使用 prohibited_unless
:
required
[
'promo_code' => [
'prohibited_unless:coupon_code,null',
],
'coupon_code' => [
'prohibited_unless:promo_code,null',
],
]
这假设您有默认的 ConvertEmptyStringsToNull
中间件。