laravel5.5 自定义验证规则——手机验证RULE
相信很多小伙伴和我一样烦恼,laravel没有自带手机号的验证,每次验证手机号都要写正则这类的规则,每次都是repeat yourself!违背了编码的一个原则,就是Don't repeat yourself!
所以今天有空就像大家介绍一下laravel5.5的一个新特性,RULE的使用。
在你使用laravel5.5之后,在php artisan list之后,你会看到

有一个新命令 make:rule, 这个就是新增的。
这里我们自定义一个手机验证规则php artisan make:rule Mobile
回车之后,我们会在app目录下看到

打开里面的Mobile.php

里面3个函数,第一个自构函数,第二个passes()是我们主要业务逻辑处理的地方,第一个键名参数,第二个是键值参数,第三个函数是错误信息提示函数,当passes函数返回false时调用。
你可以自定义你的错误提示信息,附上我的自定义验证代码
class Mobile implements Rule
{
private $value;
/**
* Create a new rule instance.
*
* @return void
*/ public function __construct()
{
//
} /**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$this->value = $value;
$phoneHead = array("128", "134", "135", "136", "137", "138", "139", "147",
"150", "151", "152", "157", "158", "159", "182", "183", "184", "187", "188",
"130", "131", "132", "145", "155", "156", "173", "175", "176", "185", "186",
"133", "153", "180", "181", "189", "170", "171", "177", "178", '199'); if(strlen($value) == 11 && is_numeric($value)) {
$head = substr($value,0,3);
foreach($phoneHead as $getHead) {
if($getHead == $head) {
return true;
}
}
}
return false;
} /**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return "无效的手机号:" . $this->value;
}
}
是不是很简单。定义好验证规则后,使用起来就特别方便啦~~~
在request文件中 new Mobile() 就可以了

再也不用写复杂的正则啦。
本文属于个人原创,欢迎转载,转载请附链接:https://www.cnblogs.com/x-x-j/p/9287536.html
laravel5.5 自定义验证规则——手机验证RULE的更多相关文章
- MVC验证05-自定义验证规则、验证2个属性值不等
原文:MVC验证05-自定义验证规则.验证2个属性值不等 本文体验2个属性值不等.即当一个属性输入值,另外一个属性输入的值不能和第一个属性值相等.相关文章包括: MVC验证01-基础.远程验证 M ...
- Sping POJO中如何添加验证规则和验证消息提示
1.示例,验证规则和错误提示作为注解写在声明变量的地方 @NotNull private long id; @NotNull @Size(min = 2, max = 30,message=" ...
- ASP.NET MVC验证 - 自定义验证规则、验证2个属性值不等【待验证】
提示:保存后才提示错误信息 自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的IsValid()方法的另外一个重载,因为该重载包含了 ...
- Yii2 注册表单验证规则 手机注册时候使用短信验证码
public function rules() { return [ ['username', 'filter', 'filter' => 'trim'], ['username', 'requ ...
- ThinkPhp5.0模型验证规则
Tp5提供了模型数据规则的验证功能,用于在数据save或者update前验证数据的有效性.Tp5提供校验规则的类为\Think\Validate,默认提供的校验规则可以查看该文件. 在Model文件中 ...
- JQuery validate验证规则
//定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, d ...
- 9、 Struts2验证(声明式验证、自定义验证器)
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...
- Thinkphp 1.验证规则 2.静态定义 3.动态验证
一.验证规则 数据验证可以对表单中的字段进行非法的验证操作.一般提供了两种验证方式: 静态定 义($_validate 属性)和动态验证(validate()方法). //验证规则 array( ar ...
- jquery validate 自定义验证方法 日期验证
jquery validate有很多验证规则,但是更多的时候,需要根据特定的情况进行自定义验证规则. 这里就来聊一聊jquery validate的自定义验证. jquery validate有一个方 ...
随机推荐
- unity 工具开发基础
using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; usin ...
- C#(Winform)禁用TextBox控件的鼠标事件
1. 继承TextBox,然后重写父类的部分方法,核心代码如下 public class MyTextBox : TextBox { protected override void WndProc(r ...
- mysql 5.6 windows7 解压缩版安装的坑
从官网下载了解压缩版的mysql ,解压缩后,配置好环境变量,运行安装命令,提示我 缺失ddl文件,然后百度,找到了一个windows 系统组件扫描安装缺失组件的程序,然后继续安装,遇到了 初始化密码 ...
- 九度oj 1437 To Fill or Not to Fill 2012年浙江大学计算机及软件工程研究生机试真题
题目1437:To Fill or Not to Fill 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1488 解决:345 题目描述: With highways availabl ...
- python-入门教程(-)
# hello worldprint("hello world") # 变量msg = "使用变量"print(msg) # 字符串大小写变换(仅针对英文)na ...
- jQuery中遇到的坑
在jQuery 1.6之前,只有attr()函数可用,该函数不仅承担了attribute的设置和获取工作,还同时承担了property的设置和获取工作.例如:在jQuery 1.6之前,attr()也 ...
- VMware Workstation 12激活码
VMware Workstation 12 Pro key/注册码: VY1DU-2VXDH-08DVQ-PXZQZ-P2KV8 VF58R-28D9P-0882Z-5GX7G-NPUTF YG7XR ...
- Firebird Procedure 带返回的存储过程
火鸟定义带返回的存储过程是这样,先定义返回结果字段列表,然后为返回字段一一赋值,当你需要返回一行时,就suspend. 当需要返回多行时,就再次为返回字段变量赋值,suspend. 示例: creat ...
- MSSqlServer 数据库降级及数据转移
--MSSqlServer数据库降级及数据转移--MS SQL SERVER高版本数据库(Database_A)恢复数据到低版本数据库(Database_B)中--1.数据库结构对象(包含表.视图.函 ...
- 【读书笔记】读《编写可维护的JavaScript》 - 编程实践(第二部分)
本书的第二个部分总结了有关编程实践相关的内容,每一个章节都非常不错,捡取了其中5个章节的内容.对大家组织高维护性的代码具有辅导作用. 5个章节如下—— 一.UI层的松耦合 二.避免使用全局变量 三.事 ...