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基础知识的更多相关文章

  1. TP框架---thinkphp基础知识

    php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困 ...

  2. ThinkPHP -- 基础入门

      ThinkPHP文件结构说明: |——ThinkPHP.php    框架入口文件    |——Common            框架公共文件目录    |——Conf              ...

  3. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  4. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  5. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  6. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  7. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  8. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

随机推荐

  1. Qt---Javascript/Qt交互、脚本化

    Qt提供了对Javascript的良好支持, 如果查阅过文档你就知道Qt有两个不同的Js封装引擎: QScriptEngine QJSEngine QScriptEngine出现的比较早(自Qt4.3 ...

  2. Handwritten Parsers & Lexers in Go (翻译)

    用go实现Parsers & Lexers 在当今网络应用和REST API的时代,编写解析器似乎是一种垂死的艺术.你可能会认为编写解析器是一个复杂的工作,只保留给编程语言设计师,但我想消除这 ...

  3. oracle自动备份_expdp_Linux

    [oracle@hbsjxtdb1 ~]$ crontab -e 0 4 * * * /backup/script/backupexpdp.sh [oracle@hbsjxtdb1 ~]$ cront ...

  4. 对 Java 集合的巧妙利用

    我们直接切入正题.首先大致介绍一下 Java 三大集合的一些特征: ①.ArrayList:底层采用数组结构,里面添加的元素有序可以重复. ②.HashSet:底层采用哈希表算法,里面添加的元素无序不 ...

  5. 搭建PHP本地服务器(XAMPP)

    1.下载XAMPP集成包 https://www.apachefriends.org/download.html2.启动前修改配置文件httpd.conf的端口号,例如:Listen 80803.启动 ...

  6. 再谈javascript面向对象编程

    前言:虽有陈皓<Javascript 面向对象编程>珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力.另外这篇文章是一篇入门文章,我也是才开始 ...

  7. Odwiedziny[POI 2015]

    题目描述 给定一棵n个点的树,树上每条边的长度都为1,第i个点的权值为a[i]. Byteasar想要走遍这整棵树,他会按照某个1到n的全排列b走n-1次,第i次他会从b[i]点走到b[i+1]点,并 ...

  8. 关于 const 的一点小研究

    在饱受 var 的折磨之后,ES6 终于推出了新的定义变量的方法:let 和 const 和 var 相比,let 和 const 有了自己的作用域,let 用于定义变量,而 const 用于定义常量 ...

  9. vue2.0 正确理解Vue.nextTick()的用途

    什么是Vue.nextTick() 官方文档解释如下: 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 获取更新后的DOM,言外之意就是DOM更新 ...

  10. php接口interface的使用

    接口是什么? 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容. 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有 ...