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中类的学习
Mar 28 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
WordPress中用于检索模版的相关PHP函数使用解析
Dec 15 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
php微信开发之关注事件
Jun 14 PHP
Yii框架连表查询操作示例
Sep 06 PHP
PHP基本语法
Mar 31 PHP
一文搞懂php的垃圾回收机制
Jun 18 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
php5.3 goto函数介绍和示例
2014/03/21 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
python中的lambda表达式用法详解
2016/06/22 Python
python线程池threadpool使用篇
2018/04/27 Python
python 修改本地网络配置的方法
2019/08/14 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
政治表现评语
2014/05/04 职场文书
美术专业自荐信
2014/07/07 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
个人作风建设总结
2014/10/23 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
优秀大学生自荐信
2015/03/26 职场文书
灵魂歌王观后感
2015/06/17 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis