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 相关文章推荐
PHP.MVC的模板标签系统(二)
Sep 05 PHP
php Sql Server连接失败问题及解决办法
Aug 07 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
深入PHP与浏览器缓存的分析
Jun 03 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
php 生成短网址原理及代码
Jan 23 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
PHP数组array类常见操作示例
May 15 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
色色整理的PHP面试题集锦
2012/03/08 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
List Installed Hot Fixes
2007/06/12 Javascript
JavaScript表单常用验证集合
2008/01/16 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
理解javascript模块化
2016/03/28 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
python制作mysql数据迁移脚本
2019/01/01 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
Aosom西班牙:家具在线商店
2020/06/11 全球购物
小学班主任培训方案
2014/06/04 职场文书
红旗渠导游词
2015/02/09 职场文书
贷款工资证明范本
2015/06/12 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
关于Redis的主从复制及哨兵问题
2022/06/16 Redis