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 相关文章推荐
关于PHP5 Session生命周期介绍
Mar 02 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
php二维数组转成字符串示例
Feb 17 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
解决Laravel5.5下的toArray问题
Oct 15 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实现一维数组转二维数组的方法
2015/02/25 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
开始着手第一个Django项目
2015/07/15 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
python 下划线的不同用法
2020/10/24 Python
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
学校经典推荐信
2013/10/30 职场文书
实习生自我鉴定
2013/12/12 职场文书
部队2014年终工作总结
2014/11/27 职场文书
毕业生评语大全
2015/01/04 职场文书
服务承诺书
2015/01/19 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
员工辞职信范文大全
2015/05/12 职场文书
余世维讲座观后感
2015/06/11 职场文书
Java基础-封装和继承
2021/07/02 Java/Android