tp5总结(三)
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总结(三)的更多相关文章
- think PHP5中,模板、控制器、JavaScript的url跳转重定向方法
php控制器中的跳转: 1, header()函数是PHP中进行页面跳转的一种十分简单的方法.主要功能是将HTTP协议标头(header)输出到浏览器. header("Location: ...
- tp5使用外部类的三种方法
在tp5中使用外部类的时候有三种方法 第一种就是通过composer下载,通过这种方式下载的外部类能够支持自动加载,我们只要在使用的时候use一下命名空间就可以使用了 比如:我们的tp5第四季项目要使 ...
- 记录一下我的三天清明节假期,TP5.1写企业站
在假期前就计划利用这三天时间写一个企业站,包括pc和wap,和微信公众平台 在计划时有些功能没有想好,导致后面踩了不少坑,前期计划一定要尽量做详细,表字段设计也要考虑好,不然后期开始写代码时会需要来回 ...
- 学习tp5的第三天(模型)
一.模型 1.定义基础模型 <?php namespace app\index\model; use think\Model; class User extends Model{ // 设置完整 ...
- tp5中很牛皮的一句sql语句,三个条件(两个不确定条件,一个硬性条件)
$result = Db::table('xxxxxx') // 表名 ->alias('g') ->join('xxxxx_2 u','g.user_id = u.id') -> ...
- TP5学习基础二:目录结构、URL路由、数据操作
一.安装1.使用git或者composer(composer update)进行实时更新,区别在于git不会清空核心框架目录而composer会清空.2.使用官网打包好的TP压缩包(解压即可用)-&g ...
- tp5框架的获取器
tp5的获取器功能很强大,一下子就喜欢上了,你可以在模块里任意定义表里不存在的字段,在前台调用很方便.话不多说直接上demo: 1.命名规则 get + 属性名的驼峰命名+ Attr 直接就能在m ...
- 接口开发,tp5结合swagger-ui安装方法
今天看到老java用的swagger提供接口,美观好用,方便维护,不是写好接口之后再写接口文档,麻烦的要死.网上找了找结合php的方法,在此记录一下,以后再开发接口就可以方便很多了. Swagger的 ...
- TP5 路由使用
这里可以直接从第四条开始看 原文http://www.upwqy.com/details/12.html 1 文档链接 tp5路由官方文档 https://www.kancloud.cn/manua ...
随机推荐
- Vue入坑教程(一)——搭建vue-cli脚手架
1. Vue简介 详细内容可以参考官网Vue.js 1)兼容性 Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性.但它支持所有兼容 ECMA ...
- Java消息队列三道面试题详解!
面试题 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka.ActiveMQ.RabbitMQ.RocketMQ 都有什么区别,以及适合哪些场景? 面试官心理分析 其实面试官主要是想看看: ...
- CF&&CC百套计划3 Codeforces Round #204 (Div. 1) A. Jeff and Rounding
http://codeforces.com/problemset/problem/351/A 题意: 2*n个数,选n个数上取整,n个数下取整 最小化 abs(取整之后数的和-原来数的和) 先使所有的 ...
- NOIP2011 提高组 Day2
自测时间:2017.4.12 8:15——11:45 实际得分:100+0+0=100 期望得分:100+100+0=260 T2 符合要求的总价值*符合要求的总个数 写成:符合要求的总价值*区间总个 ...
- 【转载】 深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1
版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址http://blog.csdn.net/longxinchen_ml/article/details/51567960 目录(?)[- ...
- 设置view controller到iPhone或者iPad模式
在写iOS程序时,view controller的显示大小以及控件大小的调节是在是一个费力的事,尤其是对于用mac本的童鞋,更难驾驭,这时我们可以根据需要设置专门针对iphone或者ipad的view ...
- python核心编程笔记——Chapter6
Chapter 6.序列:字符串,列表和元组 这章内容比较多啊,看得比较久,而且题目又难很多. 6.1鉴定一个字符串是否是另外一个字符串的字串,这道题目不是很确定,好像没有直接的判定吧. 直接是否内建 ...
- 16、DecimalFormat类
DecimalFormat类概述 在一些金融或者银行的业务里面,会出现这样千分位格式的数字,¥123,456.00,表示人民币壹拾贰万叁仟肆佰伍拾陆元整,java.text包下提供了一个Decimal ...
- PHP autoload自动加载机制
原文地址: http://www.jb51.net/article/31399.htm 一直不是很明白__autoload()和spl_autoload_register()到底有什么不同,找到了一个 ...
- 【译】第七篇 Integration Services:中级工作流管理
本篇文章是Integration Services系列的第七篇,详细内容请参考原文. 简介在上一篇文章,我们创建了一个新的SSIS包,学习了SSIS中的脚本任务和优先约束,并检查包的MaxConcur ...