laravel - 两个字段都可以为空,但填写时只需要一个
问题描述
我在 Laravel 中制作一页并使用表单请求进行验证。我在那个页面上有 2 个代码。
- 优惠券代码 2) 促销代码
我想设置条件,使这些代码可以为空,但填充时只需要一个。
我已经尝试过了,但没有得到正确的结果。
return [
'coupon_code' => 'nullable|required_without:promo_code',
'promo_code' => 'nullable|required_without:coupon_code'
];
解决方案
根据您的描述,很明显您希望允许这三个输入对:
- 优惠券代码为空,促销代码为空
- coupon_code 值,promo_code null
- coupon_code null,promo_code 值
强制执行这 3 对值中的任何一个都不需要任何验证规则。您可以将这两个规则都设置为可为空,并且没问题。
但是从字里行间看,您似乎要求拒绝这个值对:
- coupon_code 值,promo_code 值
如果是这种情况,那么required
您将使用以下命令而不是使用prohibited_unless
:
[
'promo_code' => [
'prohibited_unless:coupon_code,null',
],
'coupon_code' => [
'prohibited_unless:promo_code,null',
],
]
这假设您有默认的ConvertEmptyStringsToNull
中间件。
推荐阅读
- sql - 功能依赖帮助和分解
- java - 使用 JPA 复制条目
- node.js - Express - 从一个 url 获取对另一个 url 的响应
- vue.js - nuxt 中的环境变量
- javascript - 用数字毫秒添加大字符串毫秒
- android - '?' 的 Kotlin 语法 不断的问题
- reactjs - 在 React.createElement 数组中创建的一对元素之间的相互通信
- javascript - Is it possible to perform other operations in the codeblock of the sort method (arr.sort)?
- acumatica - 如何启用网格页脚 SummaryType?
- mysql - 从mysql中的子ID获取父ID的详细信息