【发布时间】:2015-02-21 06:36:21
【问题描述】:
我有以下规则:
'Fno' => 'digits:10'
'Lno' => 'min:2|max5' // this seems invalid
但是如何有规则,
Fno 应该是一个最小 2 位到最大 5 位的数字,并且
Lno 应该是只有最少 2 位数字的数字
【问题讨论】:
-
题外话:错字缺少
:
我有以下规则:
'Fno' => 'digits:10'
'Lno' => 'min:2|max5' // this seems invalid
但是如何有规则,
Fno 应该是一个最小 2 位到最大 5 位的数字,并且
Lno 应该是只有最少 2 位数字的数字
【问题讨论】:
:
为最小值和最大值编写验证的完整代码如下:
$request->validate([
'Fno' => 'integer|digits_between:2,5',
'Lno' => 'min:2',
]);
【讨论】:
Laravel min 和 max 验证不能与 numeric 规则验证一起正常工作。 Laravel 提供了一条规则 digits_between,而不是 numeric, min and max。
$this->validate($request,[
'field_name'=>'digits_between:2,5',
]);
【讨论】:
$this->validate($request,[
'input_field_name'=>'digits_between:2,5',
]);
试试这个就行了
【讨论】:
另外,您的原始帖子中只是一个错字。
'min:2|max5' 应该是 'min:2|max:5'。
注意“max”规则的“:”。
【讨论】:
如果我正确地得到了你想要的:
$rules = ['Fno' => 'digits_between:2,5', 'Lno' => 'numeric|min:2'];
或
$rules = ['Fno' => 'numeric|min:2|max:5', 'Lno' => 'numeric|min:2'];
对于所有可用的规则:http://laravel.com/docs/4.2/validation#available-validation-rules
digits_between :min,max
验证字段的长度必须在给定的最小值之间 和最大值。
数字
正在验证的字段必须有一个数值。
最大值:值
正在验证的字段必须小于或等于最大值 价值。字符串、数字和文件以相同的方式计算 作为大小规则。
分钟:值
验证中的字段必须具有最小值。弦乐, 数字和文件的评估方式与大小相同 规则。
【讨论】:
digits:value。验证的字段必须是数字,并且必须具有精确的值长度。[laravel.com/docs/5.0/validation#rule-digits]
numeric|min:2,您实际上会说最小值是“2”而不是“2 位”,而仅输入min:2 将只允许2 位。最小和最大规则的功能类似于大小,它采用字符串的长度,或者在数字的情况下采用数字的值。见laravel.com/docs/5.8/validation#rule-size