Laravel 4之验证

基本验证

使用Validator::make($data, $rules)验证,第一个参数为需验证的数据,第二个参数为每个字段的验证规则

  1. Route::post('/registration',function()
  2. {
  3. $data =Input::all();
  4. // Build the validation constraint set.
  5. $rules = array(
  6. 'username'=>'alpha_num'
  7. );
  8. // Create a new validator instance.
  9. $validator =Validator::make($data, $rules);
  10. });

如需多个验证规则,使用|隔开

  1. $rules = array('username'=>'alpha_num|min:3');

或是使用数组

  1. $rules = array('username'=> array('alpha_num','min:3'));

创建完一个验证,使用$validator->passes()$validator->fails()执行验证,判断验证是否通过

  1. if($validator->passes()){
  2. // Normally we would do something with the data.
  3. return'Data was saved.';
  4. }

具体验证规则参考官方API

错误消息

获取错误消息列表

  1. $errors = $validator->messages();

获取一个域的第一个消息

  1. $errors->first('email');

获取一个域的全部消息

  1. foreach($errors->get('email')as $message)
  2. {
  3. //
  4. }

获取全部域的全部错误消息

  1. foreach($errors->all()as $message)
  2. {
  3. //
  4. }

检查一个域是否存在消息

  1. $errors->has('email')

向视图反馈消息

  1. returnRedirect::to('/')->withErrors($validator);

在视图中使用

  1. <ulclass="errors">
  2. @foreach($errors->all() as $message)
  3. <li></li>
  4. @endforeach
  5. </ul>

以某种格式获取消息

  1. @foreach($errors->all('<li>:message</li>')as $message)
  2. @endforeach

或是

  1. $errors->first('username',':message',<span class="error">:message</span>)

自定义验证规则

  1. Validator::extend('awesome',function($field, $value, $params)
  2. {
  3. return $value =='awesome';
  4. });

定制的验证器接受三个参数:待验证属性的名字、待验证属性的值以及传递给这个规则的参数。传递一个类的函数到 extend 函数,而不是使用闭包:

  1. Validator::extend('awesome','CustomValidation@awesome');

自定义错误消息

传递定制消息到验证器

  1. // Build the custom messages array.
  2. $messages = array(
  3. 'min'=>'Yo dawg, this field aint long enough.'
  4. );
  5. // Create a new validator instance.
  6. $validator =Validator::make($data, $rules, $messages);

验证占位符

  1. $messages = array(
  2. 'same'=>'The :attribute and :other must match.',
  3. 'size'=>'The :attribute must be exactly :size.',
  4. 'between'=>'The :attribute must be between :min - :max.',
  5. 'in'=>'The :attribute must be one of the following types: :values',
  6. );

对一个指定的域指定定制的错误消息

  1. $messages = array(
  2. 'email.required'=>'We need to know your e-mail address!',
  3. );

结束

[转]Laravel 4之验证的更多相关文章

  1. Laravel表单验证提示设置多语言

    默认表单提示是英文的,我们可以安装语言包构建多语言环境. 根据版本选择命令 For Laravel 7.x : run composer require caouecs/laravel-lang:~6 ...

  2. 社群系统 ThinkSNS+ 中如何利用 Laravel 表单验证来验证用户名的?(我朝独有需求,两个字母占一个汉字。。。)

    ThinkSNS+后端框架使用laravel,每周和 laravel master 保持同步,而后台和 html 5 则采用 vue 开发.语言特性方面,采用 php 7 的严格模式. 言归正传,之所 ...

  3. laravel中的验证及利用uploadify上传图片

    $rules = [ 'password'=>'required|between:6,20|confirmed', ]; $message = [ 'password.required'=> ...

  4. laravel拓展validator验证

    https://blog.csdn.net/zl20117/article/details/53536520 首先,扩展的收个问题是,我的扩展类应该放在哪儿才好呢? 直接在app目录下,建立一个目录: ...

  5. laravel 表单验证 Exists 规则的基本使用方法

    public function rules(){ return [ 'm_pushing_frequency_level_id' => 'integer|required|exists:m_pu ...

  6. laravel表单验证

    效果展示:         代码 实现: 后台: use Validator; public function login() { if($input = Input::all()){ //验证提交的 ...

  7. laravel 关闭 csrf 验证 TokenMismatchException

    csrf验证失败 注释掉kernel.php 的 csrf 行代码

  8. Laravel 表单验证创建“表单请求”实现自定义请求类

    按照文档创建表单请求自定义类以后,调用总是403页面,咨询大佬说: public function authorize() { // 在表单验证类的这个方法这里要返回true,默认返回false,这个 ...

  9. laravel短信验证

    短信验证按钮倒计时功能: $('.btn').click(function(){ var time = 59; // $('.btn').css('background-color','#ccc'); ...

随机推荐

  1. 字符串匹配之horspool算法(简化的BM算法)

    前面介绍在BF,KMP这些算法的时候老是提到BM这个东西,究竟这什么东西,有啥高深的,这些问题我们如今不去考虑.不知道,认真读前几篇文章的读者有没有发现前面的算法都是从模式串的前面開始匹配的,那我们就 ...

  2. css布局详解(二)——标准流布局(Nomal flow)

    css标准流布局(Nomal flow) 一.正常流 这是指西方语言中文本从左向右,从上向下显示,这也是我们熟悉的传统的HTML文档中的文本布局.注意,在非西方的语言中,流方向可能不同.大多数元素都在 ...

  3. js获取浏览器滚动条距离顶端的距离

    最近在做项目的时候遇到需要用js获取滚动条距离窗口顶端的距离和js获取浏览器可视化窗口的大小,在这儿做一个整理保存:    一.jQuery获取的相关方法 jquery 获取滚动条高度 获取浏览器显示 ...

  4. 图文混排——用表情代替"[文字]"

    1.简单设置带属性的字符串 定义一个NSMutableAttributedString带属性的字符串 NSMutableAttributedString *str = [[NSMutableAttri ...

  5. mysql-5.7.12-winx64.zip Windows (x86, 64-bit), ZIP Archive版免安装配置

    1.下载免安装版压缩包 下载地址:http://dev.mysql.com/downloads/mysql/ 选择符合你的操作系统的版本,点击download进入下载页面 不用注册也可以点击下载连接进 ...

  6. 如何在hadoop中控制map的个数

    hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数.但是通过这种方式设置map的个数,并不是每次都有效的.原因是mapred.map. ...

  7. 一个超级简单php的留言板

    第一步:配置好测试环境:(详细略了) 第二部:新建一个数据库,命名为guestbook(名字可以随便改),可以直接在phpmyadmin里面操作,在数据库里面新建一张表‘content’,表里面有4个 ...

  8. Even Tree

    Link: https://www.hackerrank.com/challenges/even-tree def search(a,b): # 根据核心算法和题目要求要筛选边 seen = {} s ...

  9. 学习hadoop

    一.笔记本触摸板关闭方法 1.在windows下有官方驱动. 2.ubuntu下没有 操作方法如下: 1,终端操作 临时禁止触摸板:sudo modprobe -r psmouse 开启触摸板:sud ...

  10. JSON C# Class Generator是一个从JSON文本中生成C#内的应用程序

    JSON C# Class Generator是一个从JSON文本中生成C#内的应用程序 .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator   ...