HTTP --- 请求

Http请求

Rquest:处理url传递请求参数;以及请求的全部信息(比如请求头、请求参数、请求类型等)

# http请求都是在Request类中
# 比如在中间件的handle中被注册的参数$request(该参数包含了请求的所有信息)
# 在控制器动作中使用Request门面或辅助函数request()获取http请求实例对象
# 当然我们也可以使用依赖注入的方式以参数的形式注入request请求
  • 介绍Request实例对象操作
# 1. 获取 url 传递参数
request()->a;  //> 如果存在a这个参数,该参数的值会被获取(如果该参数不存在返回null) 
request()->input('a'); //> 获取a这个参数(如果该参数不存在,默认返回null)
request()->input('a','a'); //> 获取a这个参数(如果不存在默认返回a(第二个默认城参数))
# 使用 . 形式访问数组或JSON数据形式
request()->input('a.0.name');  //> 访问a数组下面第一个键为name的值
request()->input('a.*.name');  //> 访问a数组下所有数组中键为name的值
request()->input('a.name');  //> 获取JSON数据需要请求头Content-Type='application/json'
//> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
request()->all();  //> 获取当前传递的所有参数
# 获取部分输入数据
request()->only(['a','b']);  //> 获取a,b数据 或
request()->only('a','b');  //> 同上
request()->except(['a','b']); //> 获取除a,b之外的数据
request()->except('a','b');  //> 同上
//> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
request()->has('a'); //> 判断请求中是否包含a(返回值:bool)
# path() 获取当前路由路径(如:http://www,bymyside.online/admin/p)
request()->path();    //> 得到 'admin/p'
# is() 判断当前请求路径是否匹配
request()->is('admin/*');  //> 判断当前路径是否以 admin/ 开始
request()->is('admin/p'); //> 判断当前路径是否是 admin/p 
# 获取url
request()->url(); //> 获取url链接(不包含?后面的参数;如:http://www.bymyside.online/admin/p 形式)
request()->fullUrl(); //> 获取完整的url链接(如:http://www.bymyside.online/admin/p?a=1&b=2 形式)
//> 
# isMethod():判断当前请求类型
request()->isMethod('post');  //> 判断当前请求时否是post
#method():获取当前请求的类型
request()->method(); //> 可能得到 get、post、ajxa等
  • http上次请求数据
# 把请求数据存入一次性session中
# flash():把http的所有请求数据存入一次性session中
request()->flash();  //> 存入所有请求数据
# 存入部分数据
request()->flashOnly('a','b','c'); //> 只存入 a,b,c 三个数据参数
request()->flashExcept('b');
//> flashOnly()、flashExcept()可以传递一个数组或多个变量
# 存入一次性session中,然后重定向
return redirect('form')->withInput($request->except());
# withInput():也是把数据存入一次性session中
# 取出上次请求数据
request()->old('a');  //> 取出上次存入的一次性数据 a
# 或使用辅助函数old()获取上一次存入session中的数据
old('a'); //> 如果不存在 默认返回 null
old('a','a'); //> 如果不存在时 返回 默认值 a
  • 从请求中获取cookies信息
# Laravel框架创建的cookies会自动加密使用一个认证码进行签名(如果修改这需要进行有效性验证)
# 关于响应cookies加密等,请参看Response响应
$value = request()->cookies('name');  //> 获取 name cookies值
# 新增cookie到响应(响应Response)到浏览器
return response('a')->cookie('name','value',$minutes);  //> 键、值、时间(分)
# cookie() 参数 键、值、时间(分)、路径(一般 / 根目录)、域名、等 ...
return response('a')->cookie('name','value',$minutes,$path,$domain,$secure,$httpOnly);
//> cookie()方法:可以传递一个cookie实例对象
$cookie = cookie('name','value',$minutes);  //> 辅助函数cookie返回一个cookie实例对象
return response('a')->cookie($cookie);  //> 这里支持传递一个cookie实例
  • 文件上传
# 获取上传文件

你可能感兴趣的:(HTTP --- 请求)