ThinkPHP基础知识
1.入口文件中定义的内容
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);
// 定义应用目录
define('APP_PATH','./Application/');
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';
//定义根目录的绝对地址
define('ROOT',str_replace("\\","/",dirname(__FILE__)));
2.U方法的参数规则
('地址表达式',['参数'],['伪静态后缀'],['显示域名'])
地址表达式:[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...
3.如何判断请求类型,常用的请求方式有哪两种,I方法的参数规则?
判断请求类型:REQUEST_METHOD
常见的请求方式:get post
I方法的参数规则:I('变量类型.变量名',['默认值'],['过滤方法'],['额外数据源'])
注意:变量类型不区分大小写。
变量名则严格区分大小写。
默认值和过滤方法均属于可选参数。

4.成功和失败,重定向跳转的方法以及参数规则。
success('成功条件','跳转地址',‘跳转时间’);
注意:方法的默认跳转地址是$_SERVER["HTTP_REFERER"],
error('错误提示','跳转地址',‘跳转时间’);
注意:默认的等待时间success方法是1秒,error方法是3秒
重定向到New模块的Category操作
重定向:$this->redirect('New/category', array('cate_id' => 2), 5, '页面跳转中...');重定向到指定的URL地址redirect('/New/category/cate_id/2', 5, '页面跳转中...')
5.URL的四种模式,简述每种形式的规则
普通模式:http://localhost/?模块=home&控制器=user&操作=login&var=value
pathinfo模式:http://localhost/index.php/home/user/login/var/value/
REWRITE模式:http://localhost/home/user/login/var/value
兼容模式:http://localhost/?s=/home/user/login/var/value
6.TP常用的配置文件有哪几个?配置文件的加载顺序依次是什么?
配置文件:1.惯例配置:框架内置配置文件(位于ThinkPHP/Conf/convention.php)
2.应用配置:应用配置文件也就是调用所有模块之前都会首先加载的公共配置文件(默认位于Application/Common/Conf/config.php)
3.模块配置:每个模块会自动加载自己的配置文件(位于Application/当前模块名/Conf/config.php)
加载顺序:惯例配置--->应用配置--->模块配置
7.模版渲染display方法的参数规则
display('[模板文件]'[,'字符编码'][,'输出类型']);
模板文件的写法支持下面几种:

8.常用的模版内置标签以及在模版中使用的示例,举出5个!
1.<foreach name='' item='' key=''></foreach>
2.<volist name='' id=''></volist>
3.<for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" ></for>
4.比较标签:<eq name="name" value="value">value</eq>
5.范围判断标签:<in name="id" value="1,2,3">id在范围内</in>
6.<if condition="$value eq $k">value</if>
7.<empty name="name">name为空值</empty>
8.<import file="Js.Util.Array" basepath="其他目录" />//起始路径是Public目录
9.模版包含的参数规则以及举例说明
include标签用法:<include file='模版表达式或者模版文件1,模版表达式或者模版文件2,...' />
模版表达式的定义规则为:模块@主题/控制器/操作
1.使用模板表达式:例如:2.使用模板文件:可以直接包含一个模板文件名(包含完整路径),例如:
<include file="./Application/Home/View/default/Public/header.html" /
3.传入参数:<include file="Public/header" title="ThinkPHP框架" keywords="开源WEB开发框架" />
模板中使用:
10.三大自动的参数规则
字段映射:protected $_map=array(
'表单中的名'=>‘字段名’//把表单中的name名映射到数据表中的字段名
);
自动验证:protected $_validate=array(
array('字段名','验证规则','提示信息','验证条件','附加规则','验证时间'),
);
自动完成:protected $_auto=array(
array('字段名','验证规则','验证时间','附加规则'),
);
11.举例描述上传类在控制器中调用的全过程代码(要求包含控制器的代码以及模型类新增数据到数据库的全部代码),并说明表单中需要注意的内容!
模型类:
public function doUpload(){
if(empty($config)){
$config = array(
'maxSize' => 3145728,
'rootPath' => './Public/',//保存根路径,一定要重新设置,否则无法找到根路径
'savePath' => 'Uploads/',
'saveName' => array('uniqid',''),
'exts' => array('jpg', 'gif', 'png', 'jpeg'),
'autoSub' => true,
'subName' => array('date','Ymd'),
);
}
$upload=new Upload($config);
$info=$upload->upload();
if(!$info){
$this->error=$upload->getError();
return false;
}
foreach($info as $key=>$v){
$pic[$key]=$v['savepath'].$v['savename'];
}
return $pic;
}
控制器:
$pic=$this->work->doUpload();
$_POST['图片字段']=$pic['图片字段'];//添加到数据库中
表单中需要注意的内容:
1.<form action="" method="post" enctype="multipart/form-data" ></form>
2.<input type="file" name="" value="">
3.注意rootPath路径。
注意:保存根路径,一定要重新设置,否则无法找到根路径
ThinkPHP基础知识的更多相关文章
- TP框架---thinkphp基础知识
php框架 发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...
- ThinkPHP -- 基础入门
ThinkPHP文件结构说明: |——ThinkPHP.php 框架入口文件 |——Common 框架公共文件目录 |——Conf ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
随机推荐
- [置顶]
xamarin android使用zxing扫描二维码
好久没写了,这片文章篇幅不长,概述一下在xamarin android中用 ZXing.Net.Mobile库扫描二维码读取url的示例.扫码支付,扫码登录,App上各种各样的扫码,好像没个扫码的就有 ...
- bzoj 4824: [Cqoi2017]老C的键盘
Description 老 C 是个程序员. 作为一个优秀的程序员,老 C 拥有一个别具一格的键盘,据说这样可以大幅提升写程序的速度,还能让写出来的程序 在某种神奇力量的驱使之下跑得非常快.小 ...
- C#的发展已经15年了 。。。历史发展
C#是微软公司在2000年6月发布的一种新的编程语言,主要由安德斯·海尔斯伯格(Anders Hejlsberg)主持开发,它是第一个面向组件的编程语言,其源码会编译成msil再运行.它借鉴了Delp ...
- tomcat部署项目时省略项目名
大家也许知道在eclipse上通过新建server来部署项目到tomcat,并且通过server来管理项目的启动配置.server会自动创建启动该项目的xml 如: <Context docBa ...
- Webservice接口的调用
一.开发webservice接口的方式 1.jdk开发. 2.使用第三方工具开发,如cxf.shiro等等. 我这边介绍jdk方式webservice接口调用. 二.使用jdk调用webservice ...
- [E::hts_idx_push] NO_COOR reads not in a single block at the end 10 -1
在分析转录组数据时,用bowtie2比对生成的bam文件,下一步call peak使用m6Aviewer,需要bam文件的index文件.所以我直接敲命令 samtools index xx.bam ...
- oracle里的优化器
1.1 oracle里的优化器 RBO(Rule-Based-Optinizer):基于规则的优化器 CBO(Cost-Based-Optinizer): 基于成本的优化器 SQL语句执行过程 待执行 ...
- C#图解教程第一章 C#和.NET框架
1.1 在.NET之前 C#发音:see shap 1.1.1 20世纪90年代后期的Windows编程 20世纪90年代后期各语言缺点: 1.纯Win32 API不是面向对象的,而且工作量比M ...
- Android -- NestedScrolling滑动机制
1,如今NestedScrolling运用到很多地方了,要想好看一点的滑动变换,基本上就是使用这个来完成的,让我们来简单的了解一下. 2,NestedScrolling机制能够让父View和子View ...
- Layout 不可思议(一)—— CSS 实现自适应的正方形卡片
最近被一个布局问题给难住了,枉我一向自称掌握最好的前端技能是 CSS,写完博客就得敷脸去 需求是实现一个自适应的正方形卡片,效果如下: 顺便(开个坑)写个系列,总结那些设计精妙的布局结构 本次页面的 ...

2.使用模板文件:可以直接包含一个模板文件名(包含完整路径),例如: