热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP三大自动

一、自动验证array('验证字段','验证规则','错误提示','验证条件','附加规则','验证时间&#39...

一、自动验证

array('验证字段','验证规则','错误提示','验证条件','附加规则','验证时间') 

验证字段:需要验证表单字段名称

验证规则:必须要结合附加规则一起使用

错误提示:如果出现错误,抛出一个什么样的错误提示告知用户

验证条件:0、1、2

附加规则:1、regex使用正则验证 2、function使用函数验证 3、callback回调 4、confirm验证表单当中两个字段是否相同 5、验证是否等于某个值 6、in是否在某一个范围内 7、验证是否唯一

TP封装:require 字段必须验证;eamil 验证邮箱;url 验证url地址;currency 货币;number 数字;

验证时间:指数据库操作时间的验证时机,新增数据时验证Model::MODEL_INSERT;编辑的时候验证Model::MODEL_UPDATE;全部情况下验证Model::MODEL_BOTH;

aoli/Home/Tpl/default/User/reg.html

  1. <form action="__URL__/regadd" method="post"> 
  2.     用户名:<input type="text" name="username" /><br /> 
  3.     密码:<input type="password" name="password" /><br /> 
  4.     重复密码:<input type="password" name="repassword" /><br /> 
  5.     注册时间:<input type="text" name="createtime" /><br /> 
  6.     注册IP:<input type="text" name="createip" /><br /> 
  7.     <input type="submit" value="注册" /> 
  8. form> 

aoli/Home/Lib/Model/UserModel.class.php

  1.   class UserModel extends Model{//对应数据库中的表user 
  2.       protected $_validate=array
  3.           array(&#39;username&#39;,&#39;require&#39;,&#39;用户名必填&#39;), 
  4.           array(&#39;username&#39;,&#39;checklen&#39;,&#39;用户名长度过长或过短&#39;,0,&#39;callback&#39;), 
  5.           array(&#39;password&#39;,&#39;require&#39;,&#39;密码必填&#39;), 
  6.           array(&#39;repassword&#39;,&#39;require&#39;,&#39;重复密码必填&#39;), 
  7.           array(&#39;password&#39;,&#39;repassword&#39;,&#39;两次密码不一致&#39;,0,&#39;confirm&#39;), 
  8.           array(&#39;createtime&#39;,&#39;number&#39;,&#39;您输入的不是数字&#39;), 
  9.           array(&#39;createip&#39;,&#39;email&#39;,&#39;邮箱格式不正确&#39;), 
  10.       );   
  11.       function checklen($data){ 
  12.           if(strlen($data)>15 || strlen($data)<5){ 
  13.               return false; 
  14.           }else
  15.               return true; 
  16.           } 
  17.       } 
  18.           
  19.   } 
  20.   ?> 

aoli/Home/Lib/Action/UserAction.class.php

  1.        class UserAction extends Action { 
  2.        function reg(){ 
  3.            $this->display();      
  4.        } 
  5.        function regadd(){ 
  6.            $user=D(&#39;user&#39;); 
  7.            if($user->create()){ 
  8.                if($user->add()){ 
  9.                    $this->success(&#39;注册成功&#39;);      
  10.                }else
  11.                    $this->error(&#39;注册失败&#39;);      
  12.                } 
  13.            }else
  14.                $this->error($user->getError());      
  15.            }       
  16.        }       
  17.   } 
  18.   ?> 

二、自动完成(自动填充)

自动完成也是ThinkPHP当中的一个成员方法,在create的时候,自动执行

array(&#39;填充字段&#39;,&#39;填充内容&#39;,&#39;填充条件&#39;,&#39;附加规则&#39;);

  1. protected $_auto = array (  
  2.       //array( &#39;status&#39;,&#39;1&#39;),   //  新增的时候把 status 字段设置为 1 
  3.       array(&#39;password&#39;,&#39;md5&#39;,1,&#39;function&#39;) ,  //  对 password 字段在新增的时候使 md5 函数处理 
  4.       array(&#39;createtime&#39;,&#39;time&#39;,3,&#39;function&#39; ),  //  对 create_time 字段在更新的时候写入当前时间戳 
  5.     );  

三、自动映射(字段映射)

自动映射:将数据库的字段映射成别名,在表单中就可以使用别名了.

  1. protected $_map = array(    
  2.     &#39;name&#39; => &#39;username&#39;
  3.     &#39;pass&#39; => &#39;password&#39;
  4. );  

推荐阅读
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文详细介绍了在腾讯云服务器上配置 phpMyAdmin 的方法,包括安装、配置和解决常见问题。通过这些步骤,您可以轻松地在腾讯云环境中部署并使用 phpMyAdmin。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • Appium + Java 自动化测试中处理页面空白区域点击问题
    在进行移动应用自动化测试时,有时会遇到某些页面没有返回按钮,只能通过点击空白区域返回的情况。本文将探讨如何在Appium + Java环境中有效解决此类问题,并提供详细的解决方案。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
  • 本文详细介绍了如何在不同操作系统和设备上设置和配置网络连接的IP地址,涵盖静态和动态IP地址的设置方法。同时,提供了关于路由器和机顶盒等设备的IP配置指南。 ... [详细]
  • 在年前忙碌的家务和年后走亲访友之后,终于有时间重新投入到编程的世界中。年前遇到了连通器问题的困扰,希望今晚能够顺利解决。新的一年,新的开始,期待在技术领域取得更大的进步。 ... [详细]
  • Android Studio 安装与配置指南
    本教程详细介绍了如何下载并安装 Android Studio,包括设置 SDK 路径和优化启动性能的方法。通过这些步骤,您可以顺利地开始开发 Android 应用。 ... [详细]
  • 本文详细介绍了福昕软件公司开发的Foxit PDF SDK ActiveX控件(版本5.20),并提供了关于其在64位Windows 7系统和Visual Studio 2013环境下的使用方法。该控件文件名为FoxitPDFSDKActiveX520_Std_x64.ocx,适用于集成PDF功能到应用程序中。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
author-avatar
华浦即热式电热水龙头_376
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有