如何在 laravel 上进行千倍数验证?

How can I make multiples of thousands validation on laravel?

我在 laravel 上的验证是这样的:

return Validator::make($data, [
    ...
    'amount' => 'required|integer|min:20000',
]);

我要amount的值是千的倍数

所以只能输入千位的倍数

例如:25000、50000、151000、200000 等

非千倍数的输入示例:25500、50500、151500、200500 等

我该怎么做?

您可以对该数字取模,使用自定义验证规则实现此逻辑: https://laravel.com/docs/5.4/validation#custom-validation-rules

应该这样做:

  Validator::extend('mod1000', function ($attribute, $value, $parameters, $validator) {
            return $value % 1000 == 0;
  });

您可以像这样使用正则表达式进行此类验证:

return Validator::make($data, [
    ...
    'amount' => 'required|integer|regex:/^[1-9]+[0-9]*000$/',
]);

表达式中的最后三个零表示千位。第一个数字不应为零,它们之间的任何数字都是对您的案例的完美验证。

希望你明白。