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的5个入手程序
Nov 23 PHP
Wordpress php 分页代码
Oct 21 PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 PHP
抓取并下载CSS中所有图片文件的php代码
Sep 26 PHP
php中使用redis队列操作实例代码
Feb 07 PHP
解析php中如何调用用户自定义函数
Aug 06 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
Zend Framework教程之Application和Bootstrap用法详解
Mar 10 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
visual studio code 调试php方法(图文详解)
Sep 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
基于mysql的bbs设计(二)
2006/10/09 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
基于initPHP的框架介绍
2013/04/18 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
Python 错误和异常小结
2013/10/09 Python
Python算法之栈(stack)的实现
2014/08/18 Python
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
对党的十八届四中全会的期盼
2014/10/17 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
聘任通知书
2015/09/21 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
详解Python中的进程和线程
2021/06/23 Python