Laravel,以10为步长验证整数

时间:2019-03-01 14:40:41

标签: php laravel

我正在尝试验证laravel中的数字。应该发生的是,这个数字只能增加10倍。

例如:

10:    Valid number
11:    invalid number
11,5:  invalid number
15:    invald number
20:    valid number
140:   valid number

我在请求中设置的规则如下:

"amount" => ["required", "numeric", new UserHasPrivatePublicBalance(), "gte:10"],

Laravel是否有类似这样的内置规则?还是有人可以为我指出如何在纯PHP中验证此类内容的正确方向,以便我可以创建自定义规则?

谢谢!

2 个答案:

答案 0 :(得分:4)

https://laravel.com/docs/5.7/validation#using-closures

针对您的情况

'amount' => [
    'required',
    'numeric',
    function ($attribute, $value, $fail) {
        if ($value % 10 !== 0) {
            $fail($attribute.' must be 10 divisible.'); // your message
        }
    },
],

答案 1 :(得分:2)

否,没有内置的验证规则可以执行此操作,但是要检查数字是否可以被10整除,您可以执行以下操作:

if($number % 10 != 0) {
  return false;
}

模数运算符%返回除法的余数,因此,如果数字可被10整除,结果将始终为0。