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。 设置中文提示步骤:

  1. 修改 config/app.php 里面的 locale(或 .env 文件内的 APP_LOCALE),改为 cn
  2. 创建 api/resources/lang/ch/validation.php 文件
  3. 将 validation.php 文件内的提示信息或属性改为中文