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 相关文章推荐
动态网站web开发 PHP、ASP还是ASP.NET
Oct 09 PHP
php+mysql 实现身份验证代码
Mar 24 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
php启用zlib压缩文件的配置方法
Jun 12 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
PHP模型Model类封装数据库操作示例
Mar 14 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 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
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
2021/01/03 Vue.js
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
python中函数总结之装饰器闭包详解
2016/06/12 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
python实现远程控制电脑
2019/05/23 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
工厂总经理岗位职责
2014/02/07 职场文书
高中学生期末评语
2014/04/25 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android
浅谈Python魔法方法
2021/06/28 Java/Android