ThinkPHP中的三大自动简介

文章TAG:thinkphp 自动简介
时间:2014-08-23来源:商业源码网 作者:源码库 文章热度: 186 ℃
这篇文章主要介绍了ThinkPHP中的三大自动,是ThinkPHP中即为重要的一个技巧,有着广泛的应用价值,需要的朋友可以参考下
 
 
 

本文较为详细的讲述了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有一定的帮助作用。

ThinkPHP中的三大自动简介的更多相关文章

  1. ThinkPHP中create()方法自动验证表单信息

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证 ...

  2. 关于thinkphp 中的字段自动检查机制

    在thinkphp中有很好用的自动检查机制$_validate() 但是必须与create接收配合使用 可以很方便的帮助我们去判断 namespace Home\Model;use Think\Mod ...

  3. 关于ThinkPHP中的时间自动填充

    <?php class NewsModel extends Model{ protected $_auto = array( array('time_at','mydate','1','call ...

  4. ThinkPHP中的时间自动填充 无法获取时间

    protected $_auto = array(       array('addTime','time','1','function'),    ); addTime在数据库里的的类型必须为int ...

  5. tp三大自动

    ThinkPHP三大自动 (2012-03-21 10:48:56) 转载▼ 标签: thinkphp 三大自动 自动验证 自动完成 自动填充 自动映射 字段映射 杂谈 分类: php 一.自动验证 ...

  6. NTSC、PAL、SECAM三大制式简介

    NTSC.PAL.SECAM三大制式简介 NTSC.PAL和SECAM是全球三大主要的电视广播制式,这三种制式是不能互相兼容的,例如在PAL制式的电视上播放NTSC的视频,则影像画面将不能正常显示.下 ...

  7. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  8. eclipse中SSH三大框架环境搭建<三>

    相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...

  9. eclipse中SSH三大框架环境搭建<二>

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

随机推荐

  1. 谈谈如何在面试中发掘程序猿的核心竞争力zz

    早两天看了知乎日报的这篇文章<什么是程序员的核心竞争力?>,caoz讲的几点是让我感同身受.这让我联想起了给程序猿的面试,其实也就是通过短暂的接触来发掘程序猿的核心竞争力.接下来我就谈谈我 ...

  2. php文件上传类

    <?php header("Content-Type:text/html; charset=utf-8"); if($_POST['submit']){ $upfiles = ...

  3. hdu 2255 二分图最大权匹配 *

    题意:说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子.这可是一件大事,关系到人民的住房问题啊.村里共有n间房间,刚好有n家老百姓,考虑到每家都要有房住(如果有老百姓没房 ...

  4. 实现Activity刷新(转)

    目前刷新Acitivity,只想到几种方法.仅供参考,如果您有更好的方法,请赐教. 程序界面: 点击refresh view可以刷新界面,点击write content可以在EditText中自动写入 ...

  5. 在crontab中动态写日志

    45 3 * * * setsid script -c /home/dlht/shell/coreBusiness/coreOpt.sh  >> /home/dlht/logs/coreO ...

  6. Oracle创建表空间和表

    创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablesp ...

  7. javascript优化--09模式(代码复用)02

    原型继承 ://现代无类继承模式 基本代码: var parent = { name : "Papa" } var child = object(parent); function ...

  8. POJ3189 Steady Cow Assignment(最大流)

    题目大概说,有n头牛和b块草地,每头牛心中分别对每块草地都有排名,草地在牛中排名越高牛安排在那的幸福度就越小(...),每块草地都能容纳一定数量的牛.现在要给这n头牛分配草地,牛中的幸福度最大与幸福度 ...

  9. HDU2167 Pebbles(状压DP)

    题目给一张n×n的格子,每个格子都有数字,要从格子中取若干个数字,八个方向相邻的数字不能一起取,问取的数字最大和是多少. 从第一行一行一行看下去,可以发现第1行取哪几列只会影响到第2行,第3行后面的一 ...

  10. UVa11324 The Largest Clique(强连通分量+缩点+记忆化搜索)

    题目给一张有向图G,要在其传递闭包T(G)上删除若干点,使得留下来的所有点具有单连通性,问最多能留下几个点. 其实这道题在T(G)上的连通性等同于在G上的连通性,所以考虑G就行了. 那么问题就简单了, ...