Laravel - 验证输入是否在区间 [-1, 10] 内而不是 0。not_in 工作不正常?
Laravel - validate input to be in the interval [-1, 10] without 0. not_in not working properly?
正如标题所说,我在验证输入字段时遇到问题,就像我在标题中所说的那样。
我这样试过:
$request->validate([
'nota' => 'min:-1|not_in:0|max:10',
]);
基本上,我希望这个“nota”字段的值在 [-1, 10] 区间内而不是 0。
但我仍然可以输入0。
为什么它不起作用,我该如何解决?
你可以这样试试:
use Illuminate\Validation\Rule;
$request->validate([
'nota' => [Rule::notIn([0]), 'between:-1,10'],
]);
或像这样自己生成数字:
$request->validate([
'nota' => Rule::in(array_diff(range(-1, 10), [0])),
]);
正如标题所说,我在验证输入字段时遇到问题,就像我在标题中所说的那样。
我这样试过:
$request->validate([
'nota' => 'min:-1|not_in:0|max:10',
]);
基本上,我希望这个“nota”字段的值在 [-1, 10] 区间内而不是 0。
但我仍然可以输入0。
为什么它不起作用,我该如何解决?
你可以这样试试:
use Illuminate\Validation\Rule;
$request->validate([
'nota' => [Rule::notIn([0]), 'between:-1,10'],
]);
或像这样自己生成数字:
$request->validate([
'nota' => Rule::in(array_diff(range(-1, 10), [0])),
]);