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的header和asp中的redirect比较
Oct 09 PHP
php的控制语句
Oct 09 PHP
PHP 实用代码收集
Jan 22 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
php微信支付之APP支付方法
Mar 04 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 PHP
PHP 8新特性简介
Aug 18 PHP
PHP基于进程控制函数实现多线程
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 伪静态之IIS篇
2014/06/02 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
TBCompressor js代码压缩
2011/01/05 Javascript
Dom操作之兼容技巧分享
2011/09/20 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python for循环与range函数的使用详解
2019/03/23 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
使用python turtle画高达
2020/01/19 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
应届生如何写自荐信
2014/01/05 职场文书
新浪微博实习心得体会
2014/01/27 职场文书
五型班组建设方案
2014/02/10 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
优质服务标语口号
2015/12/26 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
2016年情人节广告语
2016/01/28 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
Python图片验证码降噪和8邻域降噪
2021/08/30 Python