thinkphp5.0自定义验证规则使用方法


Posted in PHP onNovember 16, 2017

我们在用thinkphp5.0时候,经常要自定义验证规则,这个写法与tp以前的版本有所区别,小编今天带来大家一起来学习一下5.0下验证规则的使用方法。

在thinkphp5中定义$rule(验证规则)有两种方式

方式一:

$rule = [
  // 不可以在此处定义空的验证 如 'name' => '',会导致出现result未定义错误
  'name' => 'require|max:25',
  'age'  => 'number|between:1,120',
];

方式二:

$rule = [
  'name' => ['require','max'=>25],
  'age'  => ['number','between'=>'1,120'],
];

如果方式一自定义验证规则的话,就可以这样写

$rule = [
  'name' => 'require|max:25|checkName:',
  'age'  => 'number|between:1,120',
];
protected function checkNmae($value)
{
  $value 是name值,可以在此处进行验证,如正则验证
}

如果是方式二的话,写法如下

$rule = [
  'name' => ['require','max'=>25,'checkName'=>'$rule参数'],
  'age'  => ['number','between'=>'1,120'],
  'email' => ['require', 'checkUserEmail'=>'qq.com'],
];
protected function checkName($value, $rule)
{
  $vaule 是name值,$rule为上面的$rule参数
}
protected function checkUserEmail($value,$rule)
{
  $res = preg_match('/^\w+([-+.]\w+)*@'.$rule.'$/', $value);
  if (!$res) {
    return '邮箱只能是'.$rule.'域名';
  } else {
    return true;
  }
}

以上就是我们给出的两种方法的代码,如果你有更好的方法或者代码可以在下面的留言区讨论留言。

PHP 相关文章推荐
php5 and xml示例
Nov 22 PHP
php将时间差转换为字符串提示
Sep 07 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
php银联网页支付实现方法
Mar 04 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
php+ajax注册实时验证功能
Jul 20 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
PHP通过GD库实现验证码功能示例
Feb 23 PHP
PHP实现验证码校验功能
Nov 16 #PHP
学习thinkphp5.0验证类使用方法
Nov 16 #PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 #PHP
php表单处理操作
Nov 16 #PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 #PHP
Laravel下生成验证码的类
Nov 15 #PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 #PHP
You might like
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
简单的js计算器实现
2016/10/26 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
[44:01]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS paiN
2018/03/31 DOTA
pandas的object对象转时间对象的方法
2018/04/11 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
Python3 max()函数基础用法
2019/02/19 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
html Table 表头固定的实现
2019/01/22 HTML / CSS
惠普香港官方商店:HP香港
2019/04/30 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
教师实习自我鉴定
2013/12/18 职场文书
汽车技术服务英文求职信范文
2014/01/02 职场文书
打架检讨书500字
2014/01/29 职场文书
党委班子剖析材料
2014/08/21 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
开网店计划分析
2019/07/30 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
python 如何获取页面所有a标签下href的值
2021/05/06 Python
新手初学Java List 接口
2021/07/07 Java/Android
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技
详解Go语言中Get/Post请求测试
2022/06/01 Golang