我对laravel的验证是这样的:
return Validator::make($data, [
...
'amount' => 'required|integer|min:20000',
]);
我希望金额的价值是数千的倍数
所以可以输入的值只有数千倍
例如:25000,50000,151000,200000等
输入的例子不是数千的倍数:25500,50500,151500,200500等
我该怎么做?
答案 0 :(得分:4)
您可以使用该数字的模数使用自定义验证规则实现此逻辑: https://laravel.com/docs/5.4/validation#custom-validation-rules
这样的事情应该做:
Validator::extend('mod1000', function ($attribute, $value, $parameters, $validator) {
return $value % 1000 == 0;
});
答案 1 :(得分:1)
您可以使用正则表达式进行此类验证:
return Validator::make($data, [
...
'amount' => 'required|integer|regex:/^[1-9]+[0-9]*000$/',
]);
表达式中的最后三个零是成千上万。第一个数字应该不是零,它们之间的任何数字都是您案例的完美验证。
希望你明白。