我有三个可以为空的字段(优惠券、会员、优惠),它们需要从请求中填写。我想验证/限制用户,以便他们只能填写这些字段之一。 由于这些字段不是必需的,我不能使用 required:* 验证器来处理这个问题。 我知道这可以在前端处理,但我也想在后端处理。
感谢您对此的任何帮助/见解。
答案 0 :(得分:0)
您可以使用 Laravel 验证中的 required_without_all
function。
$request->validate([
'coupon' => ['nullable', 'required_without_all:membership,offer'],
'membership' => ['nullable', 'required_without_all:coupon,offer'],
'offer' => ['nullable', 'required_without_all:membership,coupon'],
]);
答案 1 :(得分:0)
我会采用将选项作为同一字段的三个可能值的方法。您可以使用表单上的选择或单选按钮组来填写单个字段。这样用户只能输入三个可能的值之一。
例如,如果我们调用字段 type
,您的验证将检查为 type
提供的值是否是三个选项之一。
$request->validate([
'type' => [
'nullable',
Rule::in(['coupon', 'membership', 'offer']),
],
]);
编辑: 添加可为空的验证,允许该字段根本没有值