ThinkPHP中的三大自动简介


Posted in PHP onAugust 22, 2014

本文较为详细的讲述了ThinkPHP中的三大自动,是非常重要的应用,分享给大家供大家参考。具体如下:

一、自动验证

格式如下:

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页面如下:

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

aoli/Home/Lib/Model/UserModel.class.php页面如下:

<?php
class UserModel extends Model{//对应数据库中的表user
  protected $_validate=array(
     array('username','require','用户名必填'),
     array('username','checklen','用户名长度过长或过短',0,'callback'),
     array('password','require','密码必填'),
     array('repassword','require','重复密码必填'),
     array('password','repassword','两次密码不一致',0,'confirm'),
     array('createtime','number','您输入的不是数字'),
     array('createip','email','邮箱格式不正确'),
  ); 
  function checklen($data){
    if(strlen($data)>15 || strlen($data)<5){
      return false;
    }else{
      return true;
    }
  }
     
 }
?>

aoli/Home/Lib/Action/UserAction.class.php页面如下:

<?php
 class UserAction extends Action {
 function reg(){
   $this->display();
 }
 function regadd(){
   $user=D('user');
   if($user->create()){
     if($user->add()){
       $this->success('注册成功');
     }else{
       $this->error('注册失败');
     }
   }else{
     $this->error($user->getError());
   } 
 } 
}
?>

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

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

规则如下:

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

简单示例如下:

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

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

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

简单示例如下:

protected $_map = array(  
  'name' => 'username',
  'pass' => 'password',
);

详细本文所述技巧对于大家学习及使用ThinkPHP有一定的帮助作用。

PHP 相关文章推荐
php下使用以下代码连接并测试
Apr 09 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
学习php设计模式 php实现工厂模式(factory)
Dec 07 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
浅谈PHP中的
Apr 23 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
Dec 28 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 #PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 #PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 #PHP
PHP中new static()与new self()的区别异同分析
Aug 22 #PHP
PHP中的替代语法简介
Aug 22 #PHP
destoon供应信息title调用出公司名称的方法
Aug 22 #PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 #PHP
You might like
php方法调用模式与函数调用模式简例
2011/09/20 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
php中opendir函数用法实例
2014/11/15 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
Vue.js用法详解
2017/11/13 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
python生成IP段的方法
2015/07/07 Python
python实现获取Ip归属地等信息
2016/08/27 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
餐饮部总监岗位职责范文
2014/02/13 职场文书
《穷人》教学反思
2014/04/08 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书