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 ftp文件上传函数(基础版)
Jun 03 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
zf框架的Filter过滤器使用示例
Mar 13 PHP
php使用GeoIP库实例
Jun 27 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
php车辆违章查询数据示例
Oct 14 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 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设计模式 Visitor 访问者模式
2011/06/28 PHP
php截取中文字符串函数实例
2015/02/23 PHP
Symfony生成二维码的方法
2016/02/04 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
深入理解node.js http模块
2018/01/24 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
python去除字符串中的换行符
2017/10/11 Python
python实现外卖信息管理系统
2018/01/11 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
MYSQL支持事务吗
2013/08/09 面试题
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
公司年会抽奖活动主持词
2014/03/31 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书