https://blog.csdn.net/zl20117/article/details/53536520

首先,扩展的收个问题是,我的扩展类应该放在哪儿才好呢?

直接在app目录下,建立一个目录: app/Extensions ,然后这个目录中专门用来存放你的各类扩展,或者在APP下建立一个common目录下面放置helpers目录下面建立helper.php类

  1.  
  1. /**
  2. * 是否为手机号码
  3. * @param $string
  4. * @return bool
  5. */
  6. public static function isMobile($string) {
  7. return !!preg_match('/^1[3|4|5|7|8]\d{9}$/', $string);
  8. }

或者

  1. <?php
  2.  
  3. namespace App\Extensions;
  4.  
  5. use Illuminate\Validation\Validator;
  6. use App\Libary\Util\Validate;
  7.  
  8. /**
  9. *
  10. * @desc 扩展验证类
  11. * @author helei
  12. */
  13. class MyValidator extends Validator
  14. {
  15. /**
  16. * 验证11位手机号码
  17. */
  18. public function validateMobile($attribute, $value)
  19. {
  20. if (is_null($value)) {
  21. return false;
  22. }
  23.  
  24. return Validate::isMobile(trim($value));// 这里也可以直接将验证规则写在这里
  25. }
  26.  
  27. }

这段代码表达了这么一个主题:验证输入的手机号码,是不是一个合法的手机号码。有一个需要特别注意的是 [我们自定义的验证方法,必须要以 validate 开头]

  • 接下来就是要把我们写的验证类,注册到容器中,关于 如何注册自己的服务到容器 请参考这篇之前的文章
    这里我还是在啰嗦一下,官方文档中,就给了这么一句:

接下来,您需要注册您自定义验证器扩展:

  1. /**
  2. * 验证手机号码
  3. */
  4. Validator::extend('mobile', function ($attribute, $value, $parameters) {
  5. return Helper::isMobile($value);
  6. });
  1. class AppServiceProvider extends ServiceProvider
  2. {
  3. /**
  4. * Bootstrap any application services.
  5. *
  6. * @return void
  7. */
  8. public function boot()
  9. {
  10. /*注册自定义验证类*/
  11. /* Validator::resolver(function($translator, $data, $rules, $messages){
  12. return new SalonValidator($translator, $data, $rules, $messages);
  13. }); */
  14. $this->app['validator']->resolver(function ($translator, $data, $rules, $messages){
  15. return new SalonValidator($translator, $data, $rules, $messages);
  16. });
  17. }

OK,这里写了之后,请一定记得将该服务提供者写到 app.php 这个配置文件中去哈,如果你不知道怎么写,说明你没有看我说的 这篇文章

到了这儿,还不算完,还有一步,那就官网如果验证错误,都会给出提示信息,这个提示信息,我们在哪里去弄呢?大家可以打开 resources/lang/zh/validation.php 这个文件,我的修改如下图:

这里还有一点要说明哦,如果你要使用 zh 文件下的信息,请一定在 app/config/app.php 中将locale设置为locale=zh


这里有些同学说,我们怎么没有zh这个文件呢?其实这是laravel的语言包,网上相当的多啦。不过这里为了大家方便,我免费放一个在CSDN上,供大家下载吧

laravel拓展validator验证的更多相关文章

  1. [转]Laravel 4之验证

    Laravel 4之验证 http://dingjiannan.com/2013/laravel-validation/ 基本验证 使用Validator::make($data, $rules)验证 ...

  2. //解决validator验证插件多个name相同只验证第一的问题

    //解决validator验证插件多个name相同只验证第一的问题 var validatorName = function () { if ($.validator) { $.validator.p ...

  3. jQuery.validator 验证规则详解

    前言:jQuery.validator是一款非常不错的表单验证插件,验证方式非常简单方便,它还对HTML5做了兼容处理,了解了验证规则,就基本掌握了它的使用,下面就让我一一道来 jQuery.vali ...

  4. Validator验证Ajax提交表单的方法

    Validator验证Ajax提交表单的方法 转自:http://hunanpengdake.iteye.com/blog/1671360 当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form ...

  5. Validator验证框架

    Validator验证框架 系统分析 在设计Validator验证框架时,需要明确以下问题. (1)当用户没有输入数据时,弹出英文提示信息. (2)当用户输入的数据长度大于系统设置的数据长度,弹出英文 ...

  6. Converter(转换器)与Formatter(格式化) ,Validator(验证器)

    Converter(转换器)与Formatter(格式化)都可以用于将一种对象类型转换为另一种对象类型.Converter是通用元件,可以在应用程序的任意层中使用,而Fotermatter这是专门为W ...

  7. vue学习记录:vue引入,validator验证,数据信息,vuex数据共享

    最近在学习vue,关于学习过程中所遇到的问题进行记录,包含vue引入,validator验证,数据信息,vuex数据共享,传值问题记录 1.vue 引入vue vue的大致形式如下: <temp ...

  8. Hibernate Validator验证框架中@NotEmpty、@NotBlank、@NotNull 的区别

    Hibernate Validator验证框架中@NotEmpty.@NotBlank.@NotNull的主要使用情况 @NotEmpty  用在集合类上面 @NotBlank   用在String上 ...

  9. vue props 下有验证器 validator 验证数据返回true false后,false给default值

    vue props 下有验证器 validator 验证数据返回true false后,false给default值 props: { type: { validator (value) { retu ...

随机推荐

  1. 【solr】Solr5.5.4+Zookeeper3.4.6+Tomcat8搭建SolrCloud集群

    Solr5.5.4+Zookeeper3.4.6+Tomcat8搭建SolrCloud集群 SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力 ...

  2. fidder抓包使用(一)

    fidder是会占用 jupyter 端口的,在fidder里边最上边找到tools--->options-->connections里边的8888改成别的重启jupyter就好了

  3. Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)

    ps: 想了解更多vue相关知识请点击VUE学习目录汇总 Vue作为前端三大框架之一截至到目前在github上以收获44,873颗星,足以说明其以悄然成为主流.16年10月Vue发布了2.x版本,经过 ...

  4. Git clone远程仓库

    git clone git@ip地址:/home/git_data/wechat.git

  5. python安装第三方模块

    1.pip 安装命令: pip install 模块名由于国外网站不稳定可能会出现超时的情况,我们可以自己指定下载源命令如下临时修改 pip install 模块名 -i https://pypi.t ...

  6. [case49]聊聊flink的checkpoint配置

    序 本文主要研究下flink的checkpoint配置 实例 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecut ...

  7. 地不安装Oracle,plsql远程连接数据库

    由于Oracle的庞大,有时候我们需要在只安装Oracle客户端如plsql.toad等的情况下去连接远程数据库,可是没有安装Oracle就没有一切的配置文件去支持.最后终于发现一个很有效的方法,Or ...

  8. jquery输入框自动提示

    1. 下载jar包:jquery.autocomplete.js 2. 页面内容:<script type="text/javascript" src="../jq ...

  9. switch或判断

    <?php $num1 = 1; $num2 = 2; function int($num){ switch($num){ case 1: case 2: echo "1或2" ...

  10. Leetcode706.Design HashMap设计哈希映射

    不使用任何内建的哈希表库设计一个哈希映射 具体地说,你的设计应该包含以下的功能 put(key, value):向哈希映射中插入(键,值)的数值对.如果键对应的值已经存在,更新这个值. get(key ...