控制器接受用户的输入并调用模型和视图去完成用户的需求。
控制器类名,文件名,数据库名一致,
Lib/Action
3、 URL调度模式
url调度模式就是指在tp中访问页面url的方式
在tp中,调度模式共有四种,可以通过配置选项:URL_MDOEL来设置
0:普通模式
1:pathinfo模式
2:rewrite模式
3:兼容模式
http://项目/入口文件?g=分组名&m=模块名&a=动作名 要分大小写
g:分组名
m:模块名
a:动作名
2)pathinfo模式 搜索引擎友好,可能有的服务器,有的低版本不支持(不过不需要太担心)
这种也是tp推荐使用的模式,也是默认的
3)rewrite模式 涉及伪静态更利于seo
语法:
http://项目/分组名/模块名/动作名 url看不到index.php是因为使用了重写技术
4)兼容模式
有些web服务器可能不支持pathinfo模式,但我们还想使用,可以考虑使用这个模式
语法:
http://项目/入口文件?s=/分组名/模块名/动作名
4、空操作
空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。
5、空模块
空模块的概念是指当系统找不到指定的模块名称的时候,系统会尝试定位空模块(EmptyAction),利用这个机制我们可以用来定制错误页面和进行URL的优化。
模板赋值输出与替换
4、 实例化
在tp中,模型共分两种:
自定义模型
实例化自定义模型
快速实例化自定义模型
基础模型(Model)
实例化基础模型
快速实例化基础模型
字段映射与事务处理
AR模式 另一种插入数据要传入数据的模式叫ORM
ThinkPHP实现了ActiveRecords模式的ORM模型,采用了非标准的ORM模型:表映射到类,记录映射到对象。最大的特点就是使用方便和便于理解(因为采用了对象化),提供了开发的最佳体验,从而达到敏捷开发的目的。
AR:ActiveRecord
将数据表映射到类
将数据表字段映射到属性 数据表的字段就是该类中的属性
将数据映射到对象 每一条数据就是类生成的一个对象
12、 连贯操作
注意虽然这里位置可以随意,但是高级语法:select [select选项] 表达式 [from子句] [where子句] [group by 子句] [having 子句] [order by子句] [limit 子句] 顺序order是在limit之前,尤其是倒序后的limit不要搞晕自己
trace跟踪信息
TP中的session与cookie
文件载入与验证码 数据分页
关联查询和删除
+----+---------+-----------------+------+
| id | name | content | cid |
+----+---------+-----------------+------+
| 1 | 手机 | NULL | 0 |
| 2 | 电脑 | NULL | 0 |
| 3 | 华为 | NULL | 1 |
| 5 | 联想 | NULL | 2 |
| 6 | 华硕123 | 很好 修改 | 2 |
| 8 | 苹果 | 很好 | 2 |
| 9 | qq | qq | 0 |
| 10 | 123 | 456 | 1 |
| 11 | 123 | 456 | 1 |
| 12 | 123 | 456 | 1 |
+----+---------+-----------------+------+
<?php // 无限级分类,生成树状结构 function getTree($data, $cid = 0) { static $tree = array (); foreach ( $data as $key => $value ) { if ($value ['cid'] == $cid) { $tree [] = $value; unset ( $data [$key] ); getTree ( $data, $value ['id'] ); } } return $tree; } ?>