Laravel的请求

要通过依赖注入的方式来获取当前 HTTP 请求的实例,你应该在控制器方法中类型提示 Illuminate\Http\Request
依赖注入 & 路由参数

如果控制器方法要从路由参数中获取数据,则应在其他依赖项之后列出路由参数。例如,如果你的路由是这样定义的:

如下所示使用类型提示 Illuminate\Http\Request,就可以通过定义控制器方法获取路由参数 id

 

 

获取请求路径

path 方法返回请求的路径信息。也就是说,如果传入的请求的目标地址是 http://cms2.cnfol.com/user/123456,那么 path 将会返回 user/123456:

 

获取请求的 URL

你可以使用 url 或 fullUrl 方法去获取传入请求的完整 URL。url 方法返回不带有查询字符串的 URL,而 fullUrl 方法的返回值包含查询字符串:

http://cms2.cnfol.com/user/123456

代码如下:

获取请求方法

对于传入的请求 method 方法将返回 HTTP 的请求方式。你也可以使用 isMethod 方法去验证 HTTP 的请求方式与指定规则是否相配:

返回的结果

 

 

获取所有输入数据

你可以使用 all 方法以 数组 形式获取到所有输入数据:

$request->all();

获取指定输入值

使用几种简单的方法(不需要特别指定哪个 HTTP 动作),就可以访问 Illuminate\Http\Request 实例中所有的用户输入。也就是说无论是什么样的 HTTP 动作,input 方法都可以被用来获取用户输入数据:

$name=$request->input('name');

你可以给 input 方法的第二个参数传入一个默认值。如果请求的输入值不存在请求上,就返回默认值:

$name = $request->input('name', 'lisus2000');

从查询字符串获取输入

使用 input 方法可以从整个请求中获取输入数据(包括查询字符串),而 query 方法可以只从查询字符串中获取输入数据:

获取部分输入数据

如果你需要获取输入数据的子集,则可以用 only 和 except 方法。这两个方法都接收 数组 或动态列表作为参数:

Cookies

 
从请求中获取 Cookie

Laravel 框架创建的每个 cookie 都会被加密并使用验证码进行签名,这意味着如果客户端更改了它们,便视为无效。若要从请求中获取 cookie 值,你可以在 Illuminate\Http\Request 实例上使用 cookie 方法:

$value = $request->cookie('name');
 
将 Cookies 附加到响应

你可以使用 cookie 方法将 cookie 附加到传出的 Illuminate\Http\Response 实例。你需要传递 Cookie 名称、值、以及有效期(分钟)到这个方法:

return response('Hello World')->cookie( 'name', 'value', $minutes

));

文件

 

获取上传文件

你可以使用 file 方法或使用动态属性从 Illuminate\Http\Request 实例中访问上传的文件。该 file 方法返回一个 Illuminate\Http\UploadedFile 类的实例,该类继承了PHP 的 SplFileInfo 类的同时也提供了各种与文件交互的方法:

$file = $request->file('photo'); $file = $request->photo;

你可以使用 hasFile 方法确认请求中是否存在文件:

if ($request->hasFile('photo')) { // }
 
验证成功上传

除了检查上传的文件是否存在外,你也可以通过 isValid 方法验证上传的文件是否有效:

if ($request->file('photo')->isValid()) { // }
 
文件路径 & 扩展名

UploadedFile 类还包含访问文件的完整路径及其扩展名方法。extension 方法会根据文件内容判断文件的扩展名。该扩展名可能会和客户端提供的扩展名不同:

$path = $request->photo->path(); $extension = $request->photo->extension();

 

转载于:https://www.cnblogs.com/lisus2000/p/10424233.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值