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 ...
随机推荐
- soj1010. Zipper
1010. Zipper Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Given three strings, yo ...
- 如何定制Gtk版Emacs的Widget外观
当我们使用 xlib 版的Emacs时,可以通过 XResource 定义 Emacs 的菜单 栏.工具条.滚动条的外观. 现在,在Linux上我们大多使用 gtk版的Emacs,是否还有办法定义 E ...
- 个人集群部署hadoop 2.7 + hive 2.1
环境:centos 6.6 x64 (学习用3节点) 软件:jdk 1.7 + hadoop 2.7.3 + hive 2.1.1 环境准备: 1.安装必要工具 yum -y install open ...
- 【译】第十篇 Replication:故障排除
本篇文章是SQL Server Replication系列的第十篇,详细内容请参考原文. 复制故障排除是一项艰巨的任务.在任何复制设置中,都涉及到很多移动部件,而可用的工具并不总是很容易识别问题.Th ...
- C++ Primer 5th 第17章 标准库特殊设施
C++新标准库提供了很多新功能,它们更加强大和易用. tuple类型 tuple是一种类似pair的模板,pair可以用来保存一对逻辑上有关联的元素对.但与pair不同的是,pair只能存储两个成员, ...
- [转]CMake快速入门教程:实战
转自http://blog.csdn.net/ljt20061908/article/details/11736713 0. 前言 一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使 ...
- 弹性盒模型justify-content属性
justify-content是应用于父容器上来规定子元素在水平方向上的对齐方式的. flex-start 左对齐 flex-end 右对齐 center 居中 space-betten 两端对齐,两 ...
- Centos7安装 mysql5.6.29 shell脚本
有很多可以借鉴的地方,故转载: 创建脚本mysql.sh,直接运行sh mysql.sh !/bin/bash if [ -d /software ] ;then cd /software else ...
- C++面试常见问题
转载:https://zhuanlan.zhihu.com/p/34016871?utm_source=qq&utm_medium=social 1.在C++ 程序中调用被C 编译器编译后的函 ...
- USB设备被识别流程【转】
转自:http://blog.csdn.net/myarrow/article/details/8286876 USB模块包括usb core,host,hub,device驱动,其中hub会启动一个 ...