5、thinkphp5请求和响应 - 请求

Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。
Request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过Request对象的相关方法来获取这些数据。Request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项。
动态绑定属性
可以给Request请求对象绑定属性,方便全局调用,例如我们可以在公共控制器中绑定当前登录的用户模型到请求对象
<?php
namespace app\index\controller;

use app\index\model\User;
use think\Controller;
use think\Request;
use think\Session;

class Base extends Controller
{
   public function _initialize()
   {
       $user = User::get(Session::get('user_id'));
       Request::instance()->bind('user',$user);
   }
}

 1、使用Request

use think\Request;

//过初化始的方法来访问,这种情况可以用于自己写的类并且有继承 Controller
$request = Request::instance();
//输出当前访问URL 
echo $request->url().'<br>';

http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI

结果为:/admin/index4/hello.html?name=1111&en_name=LUXI
//用当前继承了controller 可以直接使用$this->request来访问 ,也可以输出不含域名的URL地址
echo $this->request->url().'<br>';
http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:/admin/index4/hello.html?name=1111&en_name=LUXI
//动态绑定属性 ,这种方式可以在不同控制器之间传递参数
$this->request->bind('user_name','张三');
echo $this->request->user_name.'<br>';
http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:张三
	public function _initialize(){
		
		$user = 'user_25625252';
		Request::instance()->bind('user_number',$user);
		
	}
	
	public function hello(){
		//通过_initialize() 绑定user_number ,并且支持整个项目全局访问
		echo $this->request->user_number.'<br>';
	}

http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:user_25625252

2、Request 函数助手

//通过函数助手访问 输入当前访问URL
echo request()->url().'<br>';
http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:/admin/index4/hello.html?name=1111&en_name=LUXI

3、请求变量信息

$request = Request::instance();
//请求变量信息
print_r($request->param()).'<br>';
echo '<br>'.$request->param('name').'<br>';

http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:
Array ( [name] => 1111 [en_name] => LUXI ) 
1111

4、请求变量信息助手函数

//请求变量助手函数
print_r(input()).'<br>';
echo input('name').'<br>';

5、param方法支持变量的过滤和默认值 

//param方法支持变量的过滤和默认值 如果没有值的话,默认为luxi,如果传了值就把大写变为小定。
echo $request->param('en_name','luxi','strtolower'); 

http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:luxi

6、$request 指定获取那个参数

echo '/*************request***************************/'.'<br>';
print_r($request->get());
echo '<br>';
echo 'GET参数:name:'.$request->get('name').'<br>';
echo 'POST参数:name:'.$request->post('name').'<br>';
echo 'cookie参数:name:'.$request->cookie('name').'<br>';
echo '上传文件信息:image:'.$request->file('image').'<br>';

http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:
/*************GET***************************/
Array ( [name] => 1111 [en_name] => LUXI ) 
GET参数:name:1111
POST参数:name:
cookie参数:name
上传文件信息:image:

input 助手函数
echo '/*************input***************************/'.'<br>';
print_r(input('get.'));
echo '<br>';
echo 'GET参数:name:'.input('get.name').'<br>';
echo 'POST参数:name:'.input('post.name').'<br>';
echo 'cookie参数:name:'.input('cookie.name').'<br>';
echo '上传文件信息:image:'.input('file.image').'<br>';
http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:
/*************input***************************/
Array ( [name] => 1111 [en_name] => LUXI ) 
GET参数:name:1111
POST参数:name:
cookie参数:name:
上传文件信息:image:

echo '/*************request 其他参数***************************/'.'<br>';
echo '请求方法:'.$request->method().'<br>';
echo '访问IP:'.$request->ip().'<br>';
echo '是否是AJAX请求:'.($request->isAjax()?'是':'否').'<br>';
echo '当前域名:'.$request->domain().'<br>';
echo '当前入口文档:'.$request->baseFile().'<br>';
echo '包含域名的完整URL地址:'.$request->url(true).'<br>';
echo 'URL地址的参数信息:'.$request->query().'<br>';
echo '当前URL地址 不含QUERY_STRING:'.$request->baseUrl().'<br>';
echo 'URL地址中的pathino信息:'.$request->pathinfo().'<br>';
echo 'URL地址中的后缀信息:'.$request->ext().'<br>';

http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:
/*************request 其他参数***************************/
请求方法:GET
访问IP:127.0.0.1
是否是AJAX请求:否
当前域名:http://www.tp5.com
当前入口文档:/index.php
包含域名的完整URL地址:http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
URL地址的参数信息:name=1111&en_name=LUXI
当前URL地址 不含QUERY_STRING:/admin/index4/hello.html
URL地址中的pathino信息:admin/index4/hello.html
URL地址中的后缀信息:html

echo '/*************request 当前模块/控制器/操作信息***************************/'.'<br>';
echo '模块:'.$request->module().'<br>';
echo '控制器:'.$request->controller().'<br>';
echo '方法:'.$request->action().'<br>';

http://www.tp5.com/admin/index4/hello.html?name=1111&en_name=LUXI
结果为:
/*************request 当前模块/控制器/操作信息***************************/
模块:admin
控制器:Index4
方法:hello

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值