Thinkphp5框架使用validate实现验证功能的方法


Posted in PHP onAugust 27, 2019

本文实例讲述了Thinkphp5框架使用validate实现验证功能的方法。分享给大家供大家参考,具体如下:

作为前端er,对于验证这块有着切身的体会,虽然逐渐得心应手,但始终没有一个内置的功能拿来就能用。tp5恰好提供一个。本文简单介绍并实现以下。主要是实现一下。

验证的实现基于tp5内置的对象validate。

在Index模块化下index控制器同级目录创建一个validate文件,里面一个Vdate.php验证文件,这个文件也可以放在common目录下面,只要namespace正确就可。代码如下

<?php
  namespace app\index\validate;
  use think\Validate;
  class Vdate extends Validate{
   //每个字段对应一个规则,这是第一层
    protected $rule=[
     ["name","require|max:10","不能为空|分类名不能超过10个字符"],
     ["parent_id","number","必须为数字"],
    /* ["id","number","必须是数字"],
     ["status","number|in:1,0,-1","必须是数字|必须是是0,-1,1"],*/
    ];
   //应用的场景,这是第二层
    protected $scene=[
     "save"=>["name","parent_id"],
    ];
  }

可以写多个字段,就如同我注释的。

然后前端页面代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>验证数据</title>
</head>
<body>
  <form action="{:url('index/validateF')}" method="GET">
    <input type="text" name="name">
    <input type="submit" value="提交">
  </form>
</body>
</html>

后端控制器index下面对应的validateF

public function validateF()
{
    $data=input("get.");
    print_r($data);
    $validate=validate("Vdate"); //使用验证
    //scene("save")->check($data)内置方法
    if(!$validate->scene("save")->check($data)){
      $this->error($validate->getError());//内置错误返回
    }
    //剩下操作
    $res=model("category")->add($data);
    if($res){
     $this->success('新增成功');
    }else{
     $this->error("新增失败!");
    }
}

这样就可以了。很简单的实现。关于每个字段的规则,内容很多可以参考手册或者官网吧。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 中的一些经验积累
Oct 09 PHP
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
php项目打包方法
Feb 18 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
php函数连续调用实例分析
Jul 30 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
Laravel框架查询构造器简单示例
May 08 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
Laravel 读取 config 下的数据方法
Oct 13 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 #PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 #PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 #PHP
php的命名空间与自动加载实现方法
Aug 25 #PHP
PHP7数组的底层实现示例
Aug 25 #PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 #PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 #PHP
You might like
实现树状结构的两种方法
2006/10/09 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
js模仿jquery的写法示例代码
2013/06/16 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
Python全局变量操作详解
2015/04/14 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
将python图片转为二进制文本的实例
2019/01/24 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
python为什么要安装到c盘
2020/07/20 Python
浅析Python 序列化与反序列化
2020/08/05 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
为什么要用EJB
2014/04/17 面试题
会计专业推荐信
2013/10/29 职场文书
个人简历自荐信
2013/12/05 职场文书
质量承诺书范文
2014/03/27 职场文书
媒体宣传策划方案
2014/05/25 职场文书
居安思危观后感
2015/06/11 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers