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 一个页面执行时间类代码
Mar 05 PHP
php ob_flush,flush在ie中缓冲无效的解决方法
May 09 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
CentOS安装php v8js教程
Feb 26 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 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
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
python实现图像拼接功能
2020/03/23 Python
python如何实时获取tcpdump输出
2020/09/16 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
十佳青年个人事迹材料
2014/01/28 职场文书
教师产假请假条范文
2014/04/10 职场文书
课外科技活动总结
2014/08/27 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
单位工作证明格式模板
2014/10/04 职场文书
租赁协议书
2015/01/27 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
2022/02/12 MySQL