如果 Laravel 中的其他字段为零,则需要大于零
Require greater than zero if other field is zero in Laravel
我有两个数字文本字段:
<input type="number" name="amount_1">
<input type="number" name="amount_2">
我需要验证它们,其中至少有一个值至少为 1。
我目前在验证中有这个:
'amount_1' => 'required_unless:amount_2,0',
'amount_2' => 'required_unless:amount_1,0',
使用上面的代码,如果两个字段中的任何一个的值为 1,我没有看到错误消息,这是正确的。但如果它们都是 0 值,我没有错误消息。
我需要的是如果另一个文本框的值为 0,则另一个文本框的值至少为 1。
如果两者的值都至少为 1,那也没问题。
这可能吗?
假设您的应用程序是 one-off,使用 closure 可能是最简单的:
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
'amount_1' => function ($attribute, $value, $fail) use ($request) {
if ($value + $request->input('amount_2') <= 0) {
$fail('Amount 1 or Amount 2 must be more than 0');
}
},
]);
我有两个数字文本字段:
<input type="number" name="amount_1">
<input type="number" name="amount_2">
我需要验证它们,其中至少有一个值至少为 1。
我目前在验证中有这个:
'amount_1' => 'required_unless:amount_2,0',
'amount_2' => 'required_unless:amount_1,0',
使用上面的代码,如果两个字段中的任何一个的值为 1,我没有看到错误消息,这是正确的。但如果它们都是 0 值,我没有错误消息。
我需要的是如果另一个文本框的值为 0,则另一个文本框的值至少为 1。
如果两者的值都至少为 1,那也没问题。
这可能吗?
假设您的应用程序是 one-off,使用 closure 可能是最简单的:
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
'amount_1' => function ($attribute, $value, $fail) use ($request) {
if ($value + $request->input('amount_2') <= 0) {
$fail('Amount 1 or Amount 2 must be more than 0');
}
},
]);