在 Laravel 中仅允许经过验证的数字和浮点值
Allow only numeric and float values with validation in Laravel
我的模型中有一个字段 days
,现在我只想在此列中保存 integer
或 float
值。
值可以是这样的:
1
2
0.5
2.5
我尝试使用 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 函数。
我的模型中有一个字段 days
,现在我只想在此列中保存 integer
或 float
值。
值可以是这样的:
1
2
0.5
2.5
我尝试使用 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 函数。