博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP框架表单验证
阅读量:5248 次
发布时间:2019-06-14

本文共 1985 字,大约阅读时间需要 6 分钟。

ThinkPHP框架的表单验证分为静态验证和动态验证。

静态验证:

首先在Model文件下建立一个表的模型,验证哪个表就键哪个表的模型。如验证users表,则建立textModel.class.php的文件。

定义一个textModel类,继承父类Model

在类里面添加二维数组,数组里存放验证条件。条件格式为:

  1. array(
  2. array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
  3. array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
  4. ......
  5. );

具体的验证条件可以再php手册中查询。

namespace Home\Model;use Think\Controller;class textModel extends Model{        array(            array("users","require","用户名不能为空"),              //验证用户名是否为空            array("age","","用户名已存在",1,"unique"),              //验证是否存在            array("pwd","pwd1","两次输入密码不一致",1,"confirm"),    //验证两次输入是否相等。            array("age","18,15","年龄必须在18到50之间",1,"between"), //验证在某个范围之内。            array("email","email","邮箱格式输入不正确")              //验证格式是否正确        ); }

然后就可以在控制器中验证并调取错误信息

1 namespace Home\Controller; 2 use Think\Controller; 3 class ZhuCeController extends Controller 4 { 5     function ZhuCe() 6     {     7         if(empty($_POST)) 8         { 9             $this->display();10         }11         else12         {13             $model = new \Home\Model\testModel(); //创建模型14             if(!$model->create())  //判断是否成功创建表单15             {16                  //失败的输出错误信息17                  $e = $model->getError();18                 $this->error($e);19             }20             else21             {22                 $model->add();23             }24         }    25     }26 }

动态验证:

动态验证直接在控制器里创建一个二维数组,将验证条件放在里面,然后用model调用里面的validate方法,将条件作为一个参数放在里面进行验证。

namespace Home\Controller;use Think\Controller;class ZhuCeController extends Controller{    function ZhuCe()    {                if(empty($_POST))        {            $this->display();        }        else        {            $model = new \Home\Model\testModel();            $rules = array(                array('uid','require','用户名不能为空'),            )            if(!$model->validate($rules)->create())            {                echo $model->getError();            }        }            }}

 

转载于:https://www.cnblogs.com/zk0533/p/5661618.html

你可能感兴趣的文章
S5PV210根文件系统的制作(一)
查看>>
51NOD 1244 莫比乌斯函数之和
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
Struts2工作原理
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
C++循环单链表删除连续相邻重复值
查看>>
渣渣小本求职复习之路每天一博客系列——Java基础(3)
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
ASP.NET使网页弹出窗口不再困难
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>
Linux上安装Libssh2
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>