laravel validate学习笔记
来源:互联网 发布:剑网三数据互通查询 编辑:程序博客网 时间:2024/06/16 01:09
Laravel 自带一个简单、方便的 Validation
类用于验证数据以及获取错误消息。
http://www.cnblogs.com/yjf512/p/4324159.html
在model里面定义
public function checkValidate($data){ $rules = array( 'email' => 'required|email', 'name' => 'required|between:1,20', 'password' => 'required|min:8', ); $message = array( "required" => ":attribute 不能为空", "between" => ":attribute 长度必须在 :min 和 :max 之间" ); $attributes = array( "email" => '电子邮件', 'name' => '用户名', 'password' => '用户密码', ); $validate = Validator::make($data,$rules,$message,$attributes); return $validate; }
在controller 里面 调用
public function test_Validator(){ $data = Input::all(); $user = new User(); $validate = $user->checkValidate($data); if($validate->fails()){ $warnings = $validate->messages(); $show_warning = $warnings->first(); print_r($warnings); print_r($show_warning); }else{ echo 'aaa'; } }
Validator的验证扩展
验证规则扩展
你一定会遇到比如要验证是否手机号合法的问题,laravel的Validator没有提供手机号验证的规则,因为每个国家的手机号规则是不统一的。
但是这个使用想使用Validator做验证怎么办呢?
Validator::extend('mobile', function($attribute, $value, $parameters){ return preg_match('/^0?(13[0-9]|15[012356789]|18[0-9]|14[57])[0-9]{8}$/', $value);});
然后在rule中就可以使用mobile做为规则了。
这种扩展验证规则放到哪里呢?
我建议是在filters同级目录下增加一个validator.php,然后再start/global.php中
require app_path().'/validator.php';
输出信息统一提示
上面的那个例子中,
validator的提示设置是按照语言来进行设置的。
语言设置是config目录下的app.php里面的locale界定的。默认为en。
而en对应的错误提示都在lang目录下的en目录里面的validation.php中设置。
你可以看一眼lang/en/validation.php 就明白对应的英文提示信息怎么出来的了。
要设置中文提示:
- 修改config/app.php里面的locale,设置为ch
- 创建 lang/ch/validation.php
- 修改validation.php文件,将里面的提示信息修改为中文,注意提示信息中的:attribute在显示的时候会被替换成对应属性名称,attributes是设置属性的中文名字的。
从这里也就看出来了laravel对跨语言的支持是什么样子的。
lang下面的文件夹除了validation.php之外还有分页:pagination.php,提示:reminders.php文件。
laravel自带了哪些rule规则呢?
查看手册吧。。。laravel自带的验证规则
0 0
- laravel validate学习笔记
- [Laravel学习笔记] 安装Laravel
- struts2学习笔记validate
- jQuery.validate学习笔记
- jquery.validate 学习笔记
- JQuery Validate学习笔记
- jQuery.validate学习笔记
- laravel学习笔记1
- Laravel学习笔记一
- Laravel 学习笔记
- laravel 学习笔记
- Laravel学习笔记目录
- Laravel学习笔记一
- laravel学习笔记二
- laravel单元测试学习笔记
- laravel 学习笔记1
- laravel 学习笔记 I
- Laravel学习笔记2
- classpath和classpath*的差异
- 湖北24小时在线英语播音咨询
- hdu 5225
- 天弘基金周晓明:余额宝最核心的模式是嵌入式直销
- Java Jtree渲染叶子实现可以添加swing组件
- laravel validate学习笔记
- JavaScript 框架比较
- Spring中Controller和RequestMapping的详解
- getComputedStyle与currentStyle
- [cernRoot]Get graphs from TMultiGraph
- python提示编码错误
- Spring+Hibernate框架下MySql读写分离,主从数据库配置
- 第一天
- 使用Ant批量打包Android渠道包