Laravel 表单验证 validate 规则参数

简单的表单验证1

1
2
3
4
5
6
7
8
9
10
public function store(Request $request)
{
// request() 与 $request等同
$this->validate(request(), [
'title' => 'required|string',
'content' => 'required|string',
]);

// 验证通过
}

简单的表单验证2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function store(Request $request)
{
// request() 与 $request等同
$req_params = $request->all();
$validator = Validator::make($req_params, [
'title' => 'required|string',
'content' => 'required|string',
]);

if ($validator->fails()) {
return '验证失败';
}

// 验证通过
}

验证规则

规则 说明
required 验证字段必须出现在输入数据中,不能为空
present 验证字段必须出现在输入数据中,可以为空
filled 验证字段可不在输入数据中,当验证字段出现在数据中时,不能为空
nullable 验证字段的值可以为 null
accepted 验证的字段必须为 yes、 on、 1、或 true
active_url 相当于使用了 PHP 函数 dns_get_record,验证的字段必须具有有效的 A 或 AAAA 记录
after:date 验证的字段必须是给定日期后的值。这个日期将会通过 PHP 函数 strtotime 来验证
`’start_date’ => ‘required
date after:tomorrow’<br>你也可以指定其它的字段来比较日期‘finish_date’ => ‘required date after:start_date’`
after_or_equal:date 验证的字段必须等于给定日期或之后的值。更多信息请参见 after 规则
alpha 验证的字段必须完全是字母的字符
alpha_dash 验证的字段可能具有字母、数字、破折号( - )以及下划线( _ )
alpha_num 验证的字段必须完全是字母、数字
array 验证的字段必须是一个 PHP 数组
before:date 验证的字段必须是给定日期之前的值。这个日期将会通过 PHP 函数 strtotime 来验证
before_or_equal:date 验证的字段必须等于给定日期或之前的值。这个日期将会使用 PHP 函数 strtotime 来验证
between:min,max 验证的字段的大小必须在给定的 min 和 max 之间。字符串、数字、数组或是文件大小的计算方式都用 size 方法进行评估
当需要验证表单数据中数字的大小时,在验证规则中一定要加入 Numeric 或 Integer 其一,size、between、max、min这些验证才会起作用
boolean 验证的字段必须能够被转换为布尔值。可接受的参数为 true、false、1、0、“1” 以及 “0”
confirmed 验证的字段必须和 foo_confirmation 的字段值一致。例如,如果要验证的字段是 password,输入中必须存在匹配的 password_confirmation 字段
date 验证的字段值必须是通过 PHP 函数 strtotime 校验的有效日期
date_equals:date 验证的字段必须等于给定的日期。该日期会被传递到 PHP 函数 strtotime
date_format:format 验证的字段必须与给定的格式相匹配。你应该只使用 date 或 date_format 其中一个用于验证,而不应该同时使用两者
different:field 验证的字段值必须与字段 (field) 的值不同
digits:value 验证的字段必须是数字,并且必须具有确切的值
digits_between:min,max 验证的字段的长度必须在给定的 min 和 max 之间
dimensions 验证的文件必须是图片并且图片比例必须符合规则
'avatar' => 'dimensions:min_width=100,min_height=200'
可用的规则为: min_width、 max_width 、 min_height 、 max_height 、 width 、 height 、 ratio
比例应该使用宽度除以高度的方式来约束。这样可以通过 3/2 这样的语句或像 1.5 这样的浮点的约束
'avatar' => 'dimensions:ratio=3/2'
由于此规则需要多个参数,因此你可以 Rule::dimensions 方法来构造可读性高的规则
use Illuminate\Validation\Rule;
Validator::make($data, [
'avatar' => [
'required',
Rule::dimensions()->maxWidth(1000)->maxHeight(500)->ratio(3 / 2),
],
]);
distinct 验证数组时,指定的字段不能有任何重复值
‘foo.*.id’ => ‘distinct’
email 验证的字段必须符合 e-mail 地址格式
exists:table,column 验证的字段必须存在于给定的数据库表中

空值

在 Laravel 中,一个字段满足下面任何一条都将被视为空值:

  • null
  • 空字符串 ‘ ‘
  • 空数组 [ ] 或空 countable 对象
  • 无路径的上传文件
坚持原创技术分享,您的支持将鼓励我继续创作!
0%