1、请求对象

//传统调用
$request = Request::instance();//实例化对象
$request->url();//获取当前的域名
//继承think\Controller
class Index extends Controller(){
public function hello(){
return $this->request->url();//获取当前域名
}
}
//自动注入请求对象
class Index(){
public function hello(Request $request){
return $request->url();
}
}
//hello方法的request参数是系统自动注入的,而不需要通过URL请求传入。个人感觉此方法最直观、最实用
//动态绑定属性
class Base extends Controller(){
public function _initialize(){//优先执行的函数
$user = User::get(Session::get('user_id'));//User = 用户模型
Request::instance()->bind('user',$suer);//绑定用户信息到request
}
} //在其他控制器获取
class Index extends Base(){
public function(Request $request){
$request->user->id;
$request->user->name;
}
}
//使用助手函数:不需要继承Controller类、也无需引入Request
class Index{
public function hello(){
return request()->url();//获取url
}

2、请求信息

//获取请求参数
class Index(){
public function hello(Request $request){
     ...
$params = $request->param();//请求参数
}
} 路径:http://tp5.com/index/index/hello.html?test=ddd&name=thinkphp 参数:
array (size=2)
'test' => string 'ddd' (length=3)
'name' => string 'thinkphp' (length=8)
name:thinkphp
//input助手函数
...
public function hello(){
$name = input('name');
$test = input('test');
}
//设置默认值和变量过滤
...
public function hello(Request $request){
$request->param('name','World','strtolower');
//$request->param('变量','默认值','过滤条件');
}
//Request对象也可以用于获取其它的输入参数
$request->file('image');
// '上传文件信息:image';
$request->cookie('name');
// 'cookie参数:name';
input('file.image');
// '上传文件信息:image';
input('cookie.name');
// 'cookie参数:name';
//获取请求参数   http://tp5.com/index/index/hello/test/ddd.html?name=thinkphp
echo '请求方法:' . $request->method(); //GET
echo '资源类型:' . $request->type(); //HTML
echo '访问IP:' . $request->ip(); //127.0.0.1
echo '是否AJax请求:' . var_export($request->isAjax(), true); //false
dump($request->param());
echo '请求参数:仅包含name';
dump($request->only(['name']));
echo '请求参数:排除name';
dump($request->except(['name']));

3、响应对象

//默认输出
return ['name' => 'thinkphp', 'status' => '1']; 'default_return_type' => 'json',// 默认输出类型
输出:{"name":"thinkphp","status":"1"} 'default_return_type' => 'xml',// 默认输出类型
输出:<think><name>thinkphp</name><status>1</status></think>
use \traits\controller\Jump;//包含许多返回的方法
class Index{
public function index($name=''){
if ('thinkphp' == $name) {
$this->success('欢迎使用ThinkPHP
5.0','hello');
} else {
$this->error('错误的name','guest');
}
} public function hello(){
$this->redirect('http://www.baidu.com');//跳转页面
} }

《ThinkPHP 5.0快速入门》 请求和响应的更多相关文章

  1. 《ThinkPHP 5.0快速入门》 数据库、查询语言

    1.数据库配置 return [ 'type' => 'mysql',// 数据库类型 'hostname' => '127.0.0.1',// 服务器地址 'database' => ...

  2. 《ThinkPHP 5.0快速入门》 基础和路由

    一.基础: 创建项目:conposer create-project topthink/think tp5 --prefer-dist 创建项目模块:php think build --module ...

  3. ExtJs 6.0+快速入门,ext-bootstrap.js文件的分析,各版本API下载

    ExtJS6.0+快速入门+API下载地址 ExtAPI 下载地址如下,包含各个版本 http://docs.sencha.com/misc/guides/offline_docs.html 1.使用 ...

  4. ThinkPHP 5.0 控制器-》请求-》数据库

    ThinkPHP 5.0 控制器->请求->数据库 控制器总结 无需继承其他的类(若继承了Think/Controller,可直接调用view函数渲染模板),位置处于application ...

  5. python3.5+django2.0快速入门(二)

    昨天写了python3.5+django2.0快速入门(一)今天将讲解配置数据库,创建模型,还有admin的后台管理. 配置数据库 我们打开mysite/mysite/settings.py这个文件. ...

  6. python3.5+django2.0快速入门(一)

    因为这篇教程需要用到anaconda的一些操作,如果还不懂anaconda的操作的同学可以看下这篇文章python 入门学习之anaconda篇. 创建python3+的开发环境 直接在终端输入:co ...

  7. TensorFlow 2.0 快速入门指南 | iBooker·ApacheCN

    原文:TensorFlow 2.0 Quick Start Guide 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则>,生活 ...

  8. Thinkphp5.0快速入门笔记(3)

    学习来源与说明 https://www.kancloud.cn/thinkphp/thinkphp5_quickstart 测试与部署均在windows10下进行学习. 快速入门第三节 获取当前的请求 ...

  9. Thinkphp5.0快速入门笔记(2)

    学习来源与说明 https://www.kancloud.cn/thinkphp/thinkphp5_quickstart 测试与部署均在windows10下进行学习. 示例建立新的模块和控制器 在a ...

随机推荐

  1. Qt 解释JSon数据

    jsondata={"cmd":"meetingmemberlist","memberinfos":[{"name":& ...

  2. BZOJ 2440 [中山市选2011]完全平方数 二分+容斥

    直接筛$\mu$?+爆算?再不行筛素数再筛个数?但不就是$\mu^2$的前缀和吗? 放...怕不是数论白学了$qwq$ 思路:二分+容斥 提交:两次(康了题解) 题解: 首先答案满足二分性质(递增), ...

  3. 将.py脚本打包成.exe

    https://www.cnblogs.com/wyl-0120/p/10823102.html 为了方便使用,通过pyinstaller对脚本进行打包成exe文件. pip3 install pyi ...

  4. (九)文档和视图,Invalidate,数据库编程

    一.文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口.文档.视图关联在一起b)文档类(CDocument): ...

  5. centos 7配置静态IP,并配置DNS

    注意:四 个文件 cat /etc/sysconfig/network-scripts/ifcfg-eth0 cat /etc/sysconfig/network cat /etc/resolv.co ...

  6. 图文并茂VLAN详解,让你看一遍就理解VLAN

    一.为什么需要VLAN 1.1.什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.V ...

  7. Django-批量更新

    1.表结构 class Student(models.Model): """ 学生表(已报名) """ customer = models. ...

  8. 第三方库requests详解

    Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...

  9. Codeforces 126B. Password(KMP,DP)

    Codeforces 126B. Password 题意:一个字符串,找出最长的子串t,它既是前缀又是后缀,还出现在中间.输出t,不存在则输出Just a legend. 思路:利用KMP算法处理出n ...

  10. Linux 上的Tomcat配置输入域名直接访问项目

    申请的域名备案通过了,域名是在阿里云上面的买的,一块钱,当初买服务器是买着来玩玩的. 既然申请的域名已经备案通过了,也配置了域名解析 ,服务器上也装了Tomcat,部署了web项目,下面来配置下通过域 ...