laravel拓展validator验证

laravel拓展validator验证

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上,供大家下载吧

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113018.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 缓冲区溢出攻击原理分析

    缓冲区溢出攻击原理分析本文从C/C++语言的函数帧结构出发,分析缓冲溢出攻击如果修改eip进而控制执执行shellcode。

  • 二叉树中序遍历(非递归)算法实现–C语言「建议收藏」

    二叉树中序遍历(非递归)算法实现–C语言「建议收藏」今天继续二叉树的学习。昨天写了一遍二叉树的先序遍历(非递归)算法,今天写一下二叉树的二叉树的中序遍历(非递归)算法。中序遍历的非递归算法有两种,但是个人觉得只要掌握一种就可以了,只要自己的逻辑清晰,会哪一种又有什么关系呢~首先给出今天的二叉树的示例图:代码如下://InOrderBiTreeTraverse.cpp:Definestheentrypointforthec…

  • 大疆网上测评题库_一份完整的大疆2018校招笔试题和面经送给大家~

    大疆网上测评题库_一份完整的大疆2018校招笔试题和面经送给大家~听说周日大疆就要笔试了,今年的秋招来的有点让人猝不及防啊,牛客的各种讨论群里都弥漫着一种恐惧的氛围,我是谁,我在哪,我该怎么办(惊恐脸)。。。。。哈哈哈没关系,作为一个刚刚踏上工作岗位的老学长,去年秋招在牛客网收获颇丰,是时候来回馈一波牛客网,回报一下牛妹了;)话不多说,干货奉上2018秋招大疆机器学习、算法笔试题1、两个小车,走一步能量消耗1,方向为1向右,-1为向左,首先输入路途长度,然后输…

  • 数据库oracle和mysql的区别_sql和mysql哪个用的多

    数据库oracle和mysql的区别_sql和mysql哪个用的多1、Oracle是大型数据库,而MySQL是中小型数据库。但是MySQL是开源的,但是Oracle是收费的,而且比较贵。2、Oracle的内存占有量非常大,而mysql非常小3、MySQL支持主键自增长,指定主键为autoincrement,插入时会自动增长。Oracle主键一般使用序列。4、MySQL字符串可以使用双引号包起来,而Oracle只可以单引号5、MySQL分页用li…

  • PGN详解_PGN行情

    PGN详解_PGN行情

  • 像素和毫米的换算_1500像素等于多少毫米

    像素和毫米的换算_1500像素等于多少毫米屏幕PPI计算:(White^2+Height^2)^0.5/屏幕大小英寸数毫米和像素换算:mm=(px/dpi)*25.4px=(mm*dpi)/25.4英寸=px/dpi1英寸=25.4毫

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号