【前言】
用了一段时间的TP框架,发现查询手册其实也是必备技能。因为不可能都记住,而且版本更迭也很快。这里总结下最近应用TP3.2.3的难点和疑惑点
【主体】
(1)D方法
D方法是一个自定义数据模型后用来调取数据库表名的方法,你使用和M一样,区别就在于M只调用系统Model,而U是调用你定义的Model
(2)I方法获取和POST获取
I('get.id')和I('post.'),I方法带过滤效果
(3)辅助方法
(4)连贯操作
(5)联表查询
(6)上传/添加操作时的上传时间
if(IS_POST){//处理提交 // 接收除了file外其他字段,因为file无法通过post接收 $post = I('post.'); //补全addtime字段 $post['addtime']=time(); //实例化模型 $model = M('doc'); $result = $model->add($post); //判断保存结果 if($result){ $this->success('添加成功',U('showList'),3); }else{ $this-error('添加失败'); } }else{//展示模板 $this->display(); }
拓展***:
模板中读取时间还需转换格式
{$vol.addtime|date='Y-m-d H:i:s',###}
(7)目前所用过的快速方法:U(URL组装),D(实例化自定义模型),M(实例化父类模型),G(性能测试)
①G语法:如果第三个参数是数字,则表示统计代码的执行时间,数字表示精确的小数位数(单位:us微秒---1秒=1000毫秒=1000000微秒);若为字符m,则表示统计内存开销(单位:byt),这种需要服务器的支持
G('开始标记') //需要统计效率的代码段 G('结束标记') G('开始标记','结束标记',‘数字 / 字符’)
案例:使用G方法统计某段代码执行时间开销
public function test(){ //定义开始标记 G('start'); //代码段 for($i=0;$i<100000;$i++){ // echo $i; } //结束标记 G('stop'); //开始统计,4表示精确到后4位小数 echo G('start','stop',4); }
测试后输出:0.0030,所以执行了0.0030秒
②I方法
处理表单信息的提交操作
在控制器deptController.class.php里add方法判断是否是POST提交。若是则提交,否则展示
扩展:
1. 方法判断---------判断请求是否是post,之前用$_POST判断,但在ThinkPHP里系统封装了几个比较实用的常量,可以直接用常量来判断
IS_POST、IS_GET、IS_AJAX、IS_CGI、IS_PUT等
2. 数据接收---------之前用$_POST接收数据,在ThinkPHP里使用I快速方法来接收数据。I方法可以接收任何类型输入post、get、request、put等。且系统默认自带防止SQL
注入的方法(使用PHP内置函数htmlspecialchars,将预定义字符<,>转化为HTML实体字符)。因为$POST没有对数据进行过滤,还得手动过滤。所以推荐使用I方法接收数据,
自带过滤效果,防止SQL注入
3.I 快速方法语法:I('变量类型.变量名',['默认值'],['过滤方法']),过滤方法可以自定义过滤
接收整个数组:I('get');
public function add(){ //判断请求类型,若是post则提交,否则展示 if (IS_POST) { //处理表单请求 $post = I('post.'); //成功接收后,写入数据 $model = M('dept');//模型实例化 $result = $model->add($post); //判断返回值 if ($result) { $this->success('添加成功',U('showList'),3); }else{ $this->error('添加失败');//默认跳到上一页 } }else{ $model = M('dept');//模型实例化 $data = $model->where('pid = 0')->select();//条件查询 $this->assign('data',$data);//变量分配传递到模板 $this->display(); } }
③U方法:参考http://www.cnblogs.com/jianxian/p/8637061.html
(8)截取字符串、curl发送get与post请求、去除空格等方法封装
参考网址:http://www.cnblogs.com/jianxian/p/8689105.html
(9)上传错误
查看源码后发现上传错误,所以这里总结下上传错误0-7
0--------------没有错误,上传成功 1--------------上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值! 2--------------上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值! 3--------------文件只有部分被上传! 4--------------没有文件被上传! 6--------------找不到临时文件夹! 7--------------文件写入失败!
(10)MVC心得->如果可以直接进行CURD操作的,简单的基本操作可以直接在控制器编写。如果数据需要保存处理等操作,则最好放到模型里,进行数据的CURD操作。
.
相关推荐
标题中的“聚龄项目回顾-TP-LINK牵手聚龄供应链升级数字化仓储管理”是指TP-LINK,一家全球领先的网络通讯设备供应商,与聚龄供应链合作,通过数字化手段升级其仓储管理系统的过程。这个项目的主要目标是提升TP-LINK...
《TP-LINK与聚龄供应链合作升级数字化仓储管理解析》 在全球网络通讯设备市场上,TP-LINK以其卓越的产品和服务占据领先地位,其业务涵盖了以太网、无线局域网、宽带接入等多个领域,并积极拓展智能家居和网络安全等...
在现代网络环境中,路由器桥接是一种常见的技术,用于扩大无线网络的覆盖范围。本教程中,我们要了解的是如何将华为路由器桥接到TP-Link...在操作中遇到问题时,不妨回顾上述步骤,或联系厂商的技术支持获取帮助。
- **后续跟进**:面试后及时发送感谢邮件给面试官,并简要回顾面试过程中的亮点,增加录用机会。 #### 结语 通过上述知识点的梳理,我们可以看到TP-LINK作为一家全球知名的企业,在招聘过程中对于应聘者的综合素质...
"IDF 2008 TP For Moblin" 和 "IDF 2008 Taiwan For Moblin" 提到的是2008年英特尔开发者论坛(Intel Developer Forum, IDF)在台湾举行的一场活动,专注于Moblin项目。Moblin是一个开放源代码的操作系统平台,主要...
在目标饮食和非饮食饮食课程中回顾C.est pourquoi。 客观性的建筑工人法律协会,直接或间接的部分所有权人财产保护法。daccess-ods.un.org daccess-ods.un.org daccess-ods.un.org daccess-ods.un.org 例如:在犀牛...
从提供的文件内容来看,这份文档似乎是关于一个人参加TP-LINK公司后端岗位面试时的记录或摘要。以下是根据文件内容提取的知识点: 1. 成绩 这可能指的是面试者在学术或技能测试中的表现。在面试中讨论成绩可以涉及...
这个制度规定了目标和指标的设立、实施、监测、回顾和更新的流程,并明确了各部门的责任和权限。例如,安全生产领导小组负责整体的管理和日常安全工作,而各部门则需根据公司目标将任务细化并执行。 2. **安全生产...
首先,回顾数据库的基本概念。数据库是一种组织和存储数据的系统,它能够提供数据的高效访问和管理。数据库的发展历程中,从早期的层次型和网状型数据库到现在的关系型数据库,如SQL Server,已经成为主流。在关系型...
首先,让我们回顾一下上一章节的内容,包括绘制模式、重叠形状的处理,以及对象的转换和合并技巧,如交集、联合、打孔和裁切。这些基本操作是构建复杂图形的基础。 接着,我们讨论了舞台缩放和平移、标尺和辅助线的...
在开始详细解释知识点之前,先对元组的基本概念进行回顾: 1. 元组的定义:元组是使用圆括号()进行创建,包含一系列的元素,元素之间用逗号隔开。 2. 元组的不可变性:元组一旦被创建,其中的数据就不能被修改,这...
225TP技术回顾pdf e23-RSTP. pdf 24-RSTP保护pdf 25-MSTP. pdf 26高可靠性概述pdf 27- Eth-Trunk链路聚合pdf 28-VRRP. pdf 29-BFD. pdf 30-DHCP Relay pdt 31、VPN基础pdf 32-GRE VPN pdf 33PK公钥基础架构pdf 34-...
对于一个DAW项目,按年份过滤可能意味着用户可以快速定位到特定时间段的录音、混音或制作工作,这对于回顾历史项目、组织音乐作品集或者进行时间线分析非常有用。 在实现这个功能时,开发者需要考虑以下几个关键...
13. TP13.ppt - 最后一个文件,可能总结了整个课程的关键点,回顾了HTML的基础知识,并对未来的HTML学习给出了建议或进阶话题。 通过这一系列的PPT学习,学员应能掌握基本的HTML语法,创建静态网页,理解HTML5的新...
7 对na vpn回顾 8 vpn简介及ipsec 10 ipsec 11 ipsec nat-t 12 ipsec 13 l2tp over ipsec 14 ssl vpn 15 网络攻击1 16 网络攻击2 17 DDOS 18 controller概述 19 angile controller安装部署 20 802.1x ...
Turbo Pascal 7.0 是一款历史悠久的编程语言开发环境,主要针对Pascal语言...不过,由于现代编程环境的更新迭代,Turbo Pascal 7.0可能不再支持最新的操作系统或技术,但其在编程教育和历史回顾方面仍有其独特意义。
《深入.NET 上部》系列教程主要涵盖了.NET框架的基础与进阶知识,分为5个部分,分别命名为"上部1"到"上部5"。这些章节旨在为学习者提供一个全面且深入的理解...同时,课件的形式使得学习过程更加直观,便于理解和回顾。
在深入了解AT指令接收超长短信的具体细节之前,我们首先简要回顾一些基础知识: 1. **AT指令**:AT(Attention)指令是一种用于控制调制解调器或类似设备的标准命令集,广泛应用于移动通信领域。 2. **PDU...
该压缩包文件“desapp-unq-grupo-i-012018:TP开发2018年第1学期-卡洛斯·佩雷斯·阿古斯丁·加西亚·史密斯”揭示了一个名为“desapp-unq-grupo-i-012018”的项目,该项目可能是2018年第一学期的一个团队项目,专注...
在深入了解如何使用示波器进行电源纹波测试之前,我们先简要回顾一下示波器的基本原理和操作方法。 **1.1 示波器的功能** 示波器是一种用于观察电信号波形的仪器,可以用来测量电压随时间的变化情况。通过调整水平...