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 相关文章推荐
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
php实现RSA加密类实例
Mar 26 PHP
php实现对象克隆的方法
Jun 20 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
学习PHP Cookie处理函数
Aug 09 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
PHP判断是否微信访问的方法示例
Mar 27 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
解决GD中文乱码问题
2007/02/14 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
php实现简单爬虫的开发
2016/03/28 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Prototype Class对象学习
2009/07/19 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
纯JS实现轮播图
2017/02/22 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python中的类与对象之描述符详解
2015/03/27 Python
对于Python中线程问题的简单讲解
2015/04/03 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python如何设置静态变量
2020/09/07 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
技术人员面试提纲
2013/11/28 职场文书
预备党员承诺书
2014/03/25 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
公务员考察材料
2014/12/23 职场文书
校车司机安全责任书
2015/05/11 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
redis 存储对象的方法对比分析
2021/08/02 Redis