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 配置文件中open_basedir选项作用
Jul 19 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
PHP常用技巧总结(附函数代码)
Feb 04 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
zf框架的数据库追踪器使用示例
Mar 13 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 PHP
php学习笔记之面向对象
Nov 08 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
项目中应用Redis+Php的场景
May 22 PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 PHP
php集成开发环境详解
Sep 24 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
自己做矿石收音机
2021/03/02 无线电
基于php split()函数的用法详解
2013/06/05 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
thinkphp缓存技术详解
2014/12/09 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
javascript实现yield的方法
2013/11/06 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
完善的jquery处理机制
2016/02/21 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python写的一个简单监控系统
2015/06/19 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
Python3+Appium安装使用教程
2019/07/05 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python request中文乱码问题解决方案
2020/09/17 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
后勤人员岗位职责
2013/12/17 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
2015年社区综治工作总结
2015/04/21 职场文书