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

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

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

(0)
上一篇 2021年10月26日 上午7:00
下一篇 2021年10月26日 上午8:00


相关推荐

  • 固定成本、可变成本、沉没成本、机会成本、边际成本

    固定成本、可变成本、沉没成本、机会成本、边际成本1 固定成本 vs 可变成本根据成本费用与产量的关系可将总成本费用分为 可变成本 固定成本 半可变 或半固定 成本 固定成本是指不随产品产量的变化的各项成本费用 可变成本是指随着产品产量的增减而成正比例变化的各项费用 有些成本费用属于半可变成本 如不能熄灭的工业炉的燃料费等 工资 营业费用和流动资金利息等也都可能既有可变因素 又有固定因素 必要时需将半可变 或半固定 成进一步分解为可

    2026年3月18日
    4
  • phpstorm license 2021激活码【在线注册码/序列号/破解码】

    phpstorm license 2021激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    54
  • 羞,Java 字符串拼接竟然有这么多姿势

    羞,Java 字符串拼接竟然有这么多姿势二哥 我今年大二 看你分享的 阿里巴巴 Java 开发手册 上有一段内容说 循环体内 拼接字符串最好使用 StringBuilde 的 append 方法 而不是 号操作符 到底为什么啊 我平常一直就用的 号操作符啊 二哥有空的时候能否写一篇文章分析一下呢 就在昨天 一位叫小菜的读者微信我说了上面这段话 我当时看到这条微信的第一感觉是 小菜你也太菜了吧 这都不知道为啥啊 我估

    2026年3月19日
    2
  • gnuplot 入门教程 1

    gnuplot 入门教程 1几年前写的一篇短文,今天找东西时翻出来了,感觉写的还是比较实用的。放在这里供有需要的人参考。现在在网上可以找的科学作图软件有不少,其中不乏优秀者,Win平台上有大名鼎鼎的Origin、Tecplot、SigmaPlot等,类UNIX上有LabPlot、gnuplot等。其他的常见的计算软件如Matlab、Mathematica、Maple、Scilab、IDL、Maxima等也都对科学作图

    2022年6月16日
    39
  • Python3中urlopen()详解

    Python3中urlopen()详解一 简介 urllib request urlopen 函数用于实现对目标 url 的访问 函数原型如下 urllib request urlopen url data None timeout cafile None capath None cadefault False context None url 需要打开的网址 data Post 提交的数

    2026年3月18日
    2
  • 遗传算法解决TSP问题MATLAB实现(详细)

    遗传算法解决TSP问题MATLAB实现(详细)问题定义 巡回旅行商问题给定一组 n 个城市和俩俩之间的直达距离 寻找一条闭合的旅程 使得每个城市刚好经过一次且总的旅行距离最短 TSP 问题也称为货郎担问题 是一个古老的问题 最早可以追溯到 1759 年 Euler 提出的骑士旅行的问题 1948 年 由美国兰德公司推动 TSP 成为近代组合优化领域的典型难题 TSP 是一个具有广泛的应用背景和重要理论价值的组合优化问题 近年来 有很多解决该问题的较为有效

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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