1.控制器

1-1.加载页面【使用系统函数eg:http://ww:7070/tp5-2/public/admin/test/load】

1-2.加载页面【继承控制器方法eg:http://ww:7070/tp5-2/public/admin/test/load1或者2】

1-3.数据的返回格式【在config.php中设置,默认是html eg:http://ww:7070/tp5-2/public/admin/test/data】

1-4.控制器的初始化【注意:必须继承控制器 eg:http://ww:7070/tp5-2/public/admin/int】

1-5.前置操作【注意:必须继承控制器 eg:http://ww:7070/tp5-2/public/admin/before】

1-6.页面跳转:【注意:必须继承控制器 eg:http://ww:7070/tp5-2/public/admin/login】

修改跳转过渡页面【config.php查找位置】

 // 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',

过渡页面在【thinkphp/tpl/dispatch_jump.tpl】可以自行设置

1-7.重定向 【eg:http://ww:7070/tp5-2/public/admin/login/cdx】

1-8.空操作【eg:http://ww:7070/tp5-2/public/admin/login+其他】该控制器没有的方法都执行该方法

1-9.空控制器 在模块中没有的控制器会执行该控制器【http://ww:7070/tp5-2/public/index+其他】

注意:网站上线之前每一个控制器都要加空操作,另外每一个模块也要加一个空控制器

1-10.资源 用cmd命令来创建东西  切换到tp根目录【php think clear】

php think->make:controller app\index\controller\User创建资源控制器,修改资源路由Route::resource('user','index/User');

2.请求和url【eg:http://ww:7070/tp5-2/public/url/api/test1/a/2/b/2】

2-1.

1.请求方式:GET
2.资源类型:xml
3.访问的ip:127.0.0.1
4.请求参数:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
5.某个请求参数:
array(1) {
["a"] => string(1) "2"
}
6.除了某个请求参数:
array(1) {
["b"] => string(1) "2"
}
7.是否ajax:
8.不含域名的请求地址:/tp5-2/public/url/api/test1/a/2/b/2
9.包含完整域名的地址:http://ww:7070/tp5-2/public/url/api/test1/a/2/b/2
10.获取当前域名:http://ww:7070
11.获取当前入口文件:/tp5-2/public/index.php
12.获取不含查询关键字的地址:/tp5-2/public/url/api/test1/a/2/b/2
13.获取原始地址:/tp5-2/public
14.获取url地址中的PATH_INFO:url/api/test1/a/2/b/2
15.获取url地址中的PATH_INFO不含后缀:url/api/test1/a/2/b/2
16.获取url地址中的后缀:
17.获取当前模块的名称:url
18.获取当前控制器的名称:Api
19.获取当前操作的名称:test1
20.获取路由:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
21.获取调度:
array(2) {
["type"] => string(6) "module"
["module"] => array(3) {
[0] => string(3) "url"
[1] => string(3) "api"
[2] => string(5) "test1"
}
}
22.检测某个变量参数是否设置:
bool(false)
23.助手函数input()检测某个变量参数是否设置:
bool(false)
24.获取某个请求参数param(name)方法 过滤过:
string(1) "2"
25.获取请求参数param() 未过滤:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
25.获取请求参数param(true) 包含上传文件:
array(2) {
["a"] => string(1) "2"
["b"] => string(1) "2"
}
26.get().post().delete().put().request().server().session().cookie()都一样 加参获取某个 true原始数据 无参过滤的数据
27.助手函数input input(get)
28.助手函数input input(get.a)

2-2.请求参数过滤,更改以及排除【http://localhost:7070/tp5-2/public/url/api/test2/?a=123】

2-3.请求类型判断

// 是否为 GET 请求
if (Request::instance()->isGet()) echo "当前为 GET 请求";
// 是否为 POST 请求
if (Request::instance()->isPost()) echo "当前为 POST 请求";
// 是否为 PUT 请求
if (Request::instance()->isPut()) echo "当前为 PUT 请求";
// 是否为 DELETE 请求
if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";
// 是否为 Ajax 请求
if (Request::instance()->isAjax()) echo "当前为 Ajax 请求";
// 是否为 Pjax 请求
if (Request::instance()->isPjax()) echo "当前为 Pjax 请求";
// 是否为手机访问
if (Request::instance()->isMobile()) echo "当前为手机访问";
// 是否为 HEAD 请求
if (Request::instance()->isHead()) echo "当前为 HEAD 请求";
// 是否为 Patch 请求
if (Request::instance()->isPatch()) echo "当前为 PATCH 请求";
// 是否为 OPTIONS 请求
if (Request::instance()->isOptions()) echo "当前为 OPTIONS 请求";
// 是否为 cli
if (Request::instance()->isCli()) echo "当前为 cli";
// 是否为 cgi
if (Request::instance()->isCgi()) echo "当前为 cgi";

2-4.获取头部信息【http://localhost:7070/tp5-2/public/url/api/test3】

tp5总结(三)的更多相关文章

  1. think PHP5中,模板、控制器、JavaScript的url跳转重定向方法

    php控制器中的跳转: 1, header()函数是PHP中进行页面跳转的一种十分简单的方法.主要功能是将HTTP协议标头(header)输出到浏览器. header("Location: ...

  2. tp5使用外部类的三种方法

    在tp5中使用外部类的时候有三种方法 第一种就是通过composer下载,通过这种方式下载的外部类能够支持自动加载,我们只要在使用的时候use一下命名空间就可以使用了 比如:我们的tp5第四季项目要使 ...

  3. 记录一下我的三天清明节假期,TP5.1写企业站

    在假期前就计划利用这三天时间写一个企业站,包括pc和wap,和微信公众平台 在计划时有些功能没有想好,导致后面踩了不少坑,前期计划一定要尽量做详细,表字段设计也要考虑好,不然后期开始写代码时会需要来回 ...

  4. 学习tp5的第三天(模型)

    一.模型 1.定义基础模型 <?php namespace app\index\model; use think\Model; class User extends Model{ // 设置完整 ...

  5. tp5中很牛皮的一句sql语句,三个条件(两个不确定条件,一个硬性条件)

    $result = Db::table('xxxxxx')   // 表名 ->alias('g') ->join('xxxxx_2 u','g.user_id = u.id') -> ...

  6. TP5学习基础二:目录结构、URL路由、数据操作

    一.安装1.使用git或者composer(composer update)进行实时更新,区别在于git不会清空核心框架目录而composer会清空.2.使用官网打包好的TP压缩包(解压即可用)-&g ...

  7. tp5框架的获取器

    tp5的获取器功能很强大,一下子就喜欢上了,你可以在模块里任意定义表里不存在的字段,在前台调用很方便.话不多说直接上demo: 1.命名规则   get + 属性名的驼峰命名+ Attr 直接就能在m ...

  8. 接口开发,tp5结合swagger-ui安装方法

    今天看到老java用的swagger提供接口,美观好用,方便维护,不是写好接口之后再写接口文档,麻烦的要死.网上找了找结合php的方法,在此记录一下,以后再开发接口就可以方便很多了. Swagger的 ...

  9. TP5 路由使用

    这里可以直接从第四条开始看 原文http://www.upwqy.com/details/12.html 1 文档链接 tp5路由官方文档  https://www.kancloud.cn/manua ...

随机推荐

  1. Jekins - Hello world,Jekins + Maven + Git + Tomcat 的简单应用

    Java Web 工程 新建一个简单的 Java Web 工程,并提交至 GitHub,可参考 Eclipse 提交工程至 GitHub 下载 jekins.war 在 http://mirrors. ...

  2. 线搜索(line search)方法

    在机器学习中, 通常需要求某个函数的最值(比如最大似然中需要求的似然的最大值). 线搜索(line search)是求得一个函数\(f(x)\)的最值的两种常用迭代方法之一(另外一个是trust re ...

  3. 【leetcode 简单】 第六十五题 2的幂

    给定一个整数n,判断它是否为2的次方幂. 方法:2,4,8都是2的n次幂 任何整数乘以2,都相当于向左移动了一位,而2的0次幂为1,所以2的n次幂就是1向左移动n位.这样,2的幂的特征就是二进制表示只 ...

  4. HDU1505 City Game 悬线法

    题意: 给出一个像这样的矩阵 R F F F F F F F F F F F R R R F F F     F F F F F F F F F F F F 求F组成的最大子矩阵(面积最大) 有多组数 ...

  5. Ping程序的实现

    Ping程序的实现 在windows系统下进行cmd可以进行ping操作. ping命令是用来确定本地主机与网络中其他主机的网络通信情况,或者查看是否是为效IP. ping的工作原理:网络另一主机发送 ...

  6. 【TortoiseSVN】windows中连接SVN服务器的工具

    1.下载安装包: 可以到我的服务器地址进行下载,有32和64位的安装包: http://qiaoliqiang.cn/fileDown/TortoiseSVN-1.8.8.25755-win32-sv ...

  7. Oracle Certified Java Programmer 经典题目分析(二)

    ...接上篇 what is reserved(保留) words in java? A. run B. default C. implement D. import Java 关键字列表 (依字母排 ...

  8. C#利用System.Net发送邮件

    啥也不说了,直接上干货 using System.Net.Mail;using System.Net; //使用发送邮件的邮箱 var emailAcount = "826217795@qq ...

  9. Motan

    https://github.com/weibocom/motan/wiki/zh_userguide http://www.cnblogs.com/mantu/p/5885996.html(源码分析 ...

  10. No.19 selenium学习之路之os模块

    os模块没有什么好说的,直接看实例就可以了 读取文件内容: open只能读文件的内容,不能读文件夹的内容 常用方法: 1. os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; ...