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 相关文章推荐
杏林同学录(一)
Oct 09 PHP
用PHP读取和编写XML DOM的实现代码
Feb 03 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
基于php iconv函数的使用详解
Jun 09 PHP
PHP获取文件夹内文件数的方法
Mar 12 PHP
PHP云打印类完整示例
Oct 15 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
Apr 21 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
Jun 19 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 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/04 PHP
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
php给图片加文字水印
2015/07/31 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
python解释器安装教程的方法步骤
2020/07/02 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
生物科学专业个人求职信范文
2013/12/05 职场文书
财经学院自荐信范文
2014/02/02 职场文书
工地安全质量标语
2014/06/07 职场文书
服务员岗位职责
2015/02/03 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
Python基础知识之变量的详解
2021/04/14 Python