ThinkPHP框架

一 .框架的概念

一堆代码的集合,里面有变量 函数 类 常量 设计模式MVC等等

框架可以帮助我们快速,稳定,高效的搭建程序系统

易维护,灵活

使用框架的过程可以使我们的注意力全部集中到业务层面,而无须关心程序的底层构架

二.ThinkPHP框架的目录结构

在TinkPHPLibraryThink文件夹中,几个重要的文件:

1.App.class.php  框架核心类文件

2.Think.class.php  每次请求都要执行的类

3.Controller.class.php 基础控制类,控制类的父类

4.Model.class.php 模型的父类

5.View.class.php  视图的父类

三.ThinkPHP路由

四种模式  模式中的m c a / s 都是tp框架的配置文件convention.php中定义好的

1.普通模式

m代表模块  c控制器  a操作方法(控制器里的方法名)

2.pathinfo模式(ThinkPHP中默认使用此模式)

3.rewrite()重写模式

4.兼容模式

参数s=/分组/控制器/方法

四.ThinkPHP控制器

如何创建一个属于自己的控制器

创建的目录:

如何创建:

ThinkPHP模板的调用:模板调用通过display方法来调用

display的用法:

① 该方法下调用该方法对应的模板  diaplay()

② 该方法下调用该控制器下的除自身外的其他模板 display('操作名即模板名')

③ 调用其他控制器下的模板 display('控制器名/操作名即模板名')

④ 绝对路径 display('绝对路径')

五.配置文件

1.核心配置文件

2.项目的公共配置文件(即是前台又是后台的配置文件)

3.模块(home)的配置文件

说明:加载顺序:核心配置文件>项目的公共配置文件(即是前台又是后台的配置文件)>模块(home)的配置文件

优先级顺序:模块(home)的配置文件>项目的公共配置文件(即是前台又是后台的配置文件)>核心配置文件

4.配置文件读取

通过C函数来读取

例如:

设置配置文件:

 六.系统常量

七.ThinkPHP的两种模式

从入口文件里面写:

define('APP_DEBUG',true);这是调试模式

define('APP_DEBUG',false);这是运行模式

八.显示日志信息

九.控制器操作

1.空操作

系统找不到请求的方法时,会定位到_empty()这个方法处理

2.空控制器

3.跨控制器调用

十.Tp框架语法

1.判断

<if condition='表达式'>

<elseif condition='表达式'/>

<else/>

</if>

表达式中的运算符:

php运算符 对应TP中的运算符 英文全称
< lt less than
> gt greater than
== eq equal
>= egt equal or greater than
<= elt equal or less than

2.循环

① <volist></volist>

volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模版赋值:

  1. $User = M('User');
  2. $list = $User->limit(10)->select();
  3. $this->assign('list',$list);

在模版定义如下, name="list" id="vo">

  • {$vo.id}:{$vo.name}<br/>
  • </volist>

Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的 name="list" id="data">

  • {$data.id}:{$data.name}<br/>
  • </volist>

支持输出查询结果中的部分数据,例如输出其中的第5~15条记录

  1. <volist name="list" id="vo" offset="5" length='10'>
  2. {$vo.name}
  3. </volist>

输出偶数记录

  1. <volist name="list" id="vo" mod="2" >
  2. <eq name="mod" value="1">{$vo.name}</eq>
  3. </volist>

Mod属性还用于控制一定记录的换行,例如:

  1. <volist name="list" id="vo" mod="5" >
  2. {$vo.name}
  3. <eq name="mod" value="4"><br/></eq>
  4. </volist>

为空的时候输出提示:

  1. <volist name="list" id="vo" empty="暂时没有数据" >
  2. {$vo.id}|{$vo.name}
  3. </volist>

empty属性不支持直接传入html语法,但可以支持变量输出,例如:

  1. $this->assign('empty','<span class="empty">没有数据</span>');
  2. $this->assign('list',$list);

然后在模板中使用:

  1. <volist name="list" id="vo" empty="$empty" >
  2. {$vo.id}|{$vo.name}
  3. </volist>

输出 name="list" id="vo" key="k" >

  • {$k}.{$vo.name}
  • </volist>

如果没有指定key属性的话,默认使用 name="list" id="vo" >

  • {$i}.{$vo.name}
  • </volist>

如果要输出数组的索引,可以直接使用key变量,和 name="list" id="vo" >

  • {$key}.{$vo.name}
  • </volist>

模板中可以直接使用函数设定数据集,而不需要在控制器中给模板变量赋值传入数据集变量,如:

  1. <volist name=":fun('arg')" id="vo">
  2. {$vo.name}
  3. </volist>

② <for></for>

用法:

  1. <for start="开始值" end="结束值" comparison="" step="步进值" name="</for>

开始值、结束值、步进值和

  1. <for start="1" end="100">
  2. {$i}
  3. </for>

解析后的代码是

  1. for ($i=1;$i<100;$i+=1){
  2. echo $i;
  3. }

③ <foreach></foreach>

foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如: {$vo.id}:{$vo.name}

name表示数据源 item表示 name="list" item="vo" >

  • {$key}|{$vo.id}:{$vo.name}
  • </foreach>

也可以定义索引的变量名

  1. <foreach name="list" item="vo" key="k" >
  2. {$k}|{$vo.id}:{$vo.name}
  3. </foreach>

 十一.连接数据库

将上图的配置拷贝到下图中

十二.创建Model模型

在Application目录下创建目录Model,在Model文件夹下创建模型类GoodsModel.class.php

 1.第一种实例化模型的方法(这是GoodsModel的对象)

2.第二种实例化模型的方法(这是基础模型类Model的对象)

3.第三种实例化模型的方法(这是基础模型类Model的对象)

说明:在TP3.2之后的版本M()和D()是一样的,在GoodsModel.class.php中我们并没有写代码,所有的业务逻辑都是基础模型类Model.class.php来实现的

十三.表操作

增加:M('表名')->add()

删除:M('表名')->delete()

修改:M('表名')->save()

查询:M('表名')->select()

1.普通查询

2.条件查询

havingwhere的区别

区别一:

where后面跟的字段必须在数据表中有

having后面跟的字段必须在数据集中有

区别二:

select * from 表  where 条件  group by 分组  having 条件

3.聚合函数

4.数据的添加

通过关联数组的方式添加

5.修改数据

6.删除数据

7.直接执行SQL语句

原文地址:https://www.cnblogs.com/wfc139/p/9215776.html