Laravel 字段验证
手动创建验证程序示例
1<?php
2
3$data = [
4 'email' = '[email protected]',
5 'name'='aaa',
6 'password'='aaa'
7];
8
9$rules = array(
10 'email' => 'required|email',
11 'name' => 'required|between:1,20',
12 'password' => 'required|min:8',
13);
14
15$message = array(
16 'required' => ':attribute 不能为空',
17 'between' => ':attribute 长度必须在 :min 和 :max 之间"
18);
19
20$attributes = array(
21 'email' => '电子邮件',
22 'name' => '用户名',
23 'password' => '用户密码',
24);
25
26$validate = Validator::make($data,$rules,$message,$attributes);
27
28var_dump($validate->fails());
29var_dump($validate->messages());
30var_dump($validate->messages()->first())
Validator 的验证扩展
1<?php
2
3# 基于 Validator 的手机号验证扩展
4
5Validator::extend('mobile', function($attribute, $value, $parameters)
6{
7 return preg_match('/^0?(13[0-9]|15[012356789]|18[0-9]|14[57])[0-9]{8}$/', $value);
8});
输出信息统一提示
上面例子中,message 和 attribute 都需要在使用 Validator 的时候自己定义,比较麻烦。Validator 的提示设置是按照语言来进行设置的。语言配置是 config 目录下的 app.php 里面的 locale 配置项,默认为 en。 设置中文提示步骤:
- 修改 config/app.php 里面的 locale(或 .env 文件内的 APP_LOCALE),改为 cn
- 创建 api/resources/lang/ch/validation.php 文件
- 将 validation.php 文件内的提示信息或属性改为中文