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 相关文章推荐
function.inc.php超越php
Dec 09 PHP
再次研究下cache_lite
Feb 14 PHP
PHP操作文件方法问答
Mar 16 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
深入分析PHP引用(&amp;)
Sep 04 PHP
浅谈php和.net的区别
Sep 28 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
PHP实现微信提现功能(微信商城)
Nov 21 PHP
PHP中关于php.ini参数优化详解
Feb 28 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入门速成(2)
2006/10/09 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
php中opendir函数用法实例
2014/11/15 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PDO::rollBack讲解
2019/01/29 PHP
Prototype Class对象学习
2009/07/19 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
python输入错误后删除的方法
2019/10/12 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
python实现AdaBoost算法的示例
2020/10/03 Python
外贸公司实习自我鉴定
2013/09/24 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
python实现简单聊天功能
2021/07/07 Python
nginx实现动静分离的方法示例
2021/11/07 Servers
Python实现抖音热搜定时爬取功能
2022/03/16 Python