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

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

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


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

或者

<?php

namespace App\Extensions;

use Illuminate\Validation\Validator;
use App\Libary\Util\Validate; /**
*
* @desc 扩展验证类
* @author helei
*/
class MyValidator extends Validator
{
/**
* 验证11位手机号码
*/
public function validateMobile($attribute, $value)
{
if (is_null($value)) {
return false;
} return Validate::isMobile(trim($value));// 这里也可以直接将验证规则写在这里
} }

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

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

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

/**
* 验证手机号码
*/
Validator::extend('mobile', function ($attribute, $value, $parameters) {
return Helper::isMobile($value);
});
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
/*注册自定义验证类*/
/* Validator::resolver(function($translator, $data, $rules, $messages){
return new SalonValidator($translator, $data, $rules, $messages);
}); */
$this->app['validator']->resolver(function ($translator, $data, $rules, $messages){
return new SalonValidator($translator, $data, $rules, $messages);
});
}

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. 学习线程池源码--ThreadPoolExecutor

    1 创建ThreadPoolExecutor ThreadPollExecutor有四个构造函数,但本质上都是调用这一个构造函数. public ThreadPoolExecutor(int core ...

  2. Docker Mysql部署

    1.下载tomcat镜像 docker pull mysql 2.启动容器 docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD ...

  3. CHARINDEX函数

    CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置.CHARINDEX函数调用方法如下:    CHARINDEX ( expression1 , expression2 [ , st ...

  4. ucore 物理内存探测 lab2 附录A&B

    探测物理内存分布的大小和方法 bootloader 增加的工作 bootasm.S 中对应了 probe_memory 到 finish_probe 的部分. 通过BIOS 中断 获取内存可调用参数为 ...

  5. java-多线程的练习----妖,等待唤醒,代码重构,lock到condition

    1 需求 资源有姓名和性别. 两个线程,    一个负责给姓名和性别赋值,    一个负责获取姓名和性别的值. 要求1,运行一下,解决程序的 "妖"的问题. 要求2,实现正确数据的 ...

  6. leetcode 350 easy

    350. Intersection of Two Arrays II class Solution { public: vector<int> intersect(vector<in ...

  7. ML面试1000题系列(21-30)

    本文总结ML面试常见的问题集 转载来源:https://blog.csdn.net/v_july_v/article/details/78121924 21.请简要说说EM算法. @tornadome ...

  8. gb2312的6763个汉字

    0a啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡 ...

  9. 微信小程序之上拉加载更多

    loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流 ...

  10. 详解TCP三握四挥

    TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确 ...