首页 > 解决方案 > Laravel,以 10 为步长验证整数

问题描述

我正在尝试在 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 中验证这样的事情的正确方向,以便我可以创建自定义规则?

谢谢!

标签: phplaravel

解决方案


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
        }
    },
],

推荐阅读