在 Laravel 中仅允许经过验证的数字和浮点值

Allow only numeric and float values with validation in Laravel

我的模型中有一个字段 days,现在我只想在此列中保存 integerfloat 值。

值可以是这样的:

我尝试使用 numeric 但它不允许我输入 float 值:

$this->validate($request, [
    'days' => 'required|numeric|min:1|max:50',
]);

非常感谢任何帮助。

谢谢

您可以尝试为您的案例自定义验证规则。 示例:

'days' => 'required|regex:/^\d*(\.\d{2})?$/'

如果没有 validation rule 可以帮助您,您可以使用闭包。

所以,首先试试这个:

'days' => 'required|numeric|min:0|max:50',

如果不行,我们可以用closures:

'days' => [
    'required',
    'numeric',
    function ($attribute, $value, $fail) {
        if ($value <= 0) {
            $fail($attribute.' must be greater than 0.');
        }
    },
    'max:50',
],

请记住 numeric validation, uses is_numeric 内置 PHP 函数。