什么是 Request 对象
Illuminate\Http\Request 是一个用面向对象方式处理应用所接收 HTTP 请求的类。
你可以通过它访问请求中包含的所有信息,包括表单数据、查询字符串、上传文件、请求头等。
向控制器注入请求
在控制器方法中,只要为Illuminate\Http\Request 添加类型提示,Laravel 的服务容器就会自动注入请求实例。
与路由参数一起使用
如果控制器方法同时接收路由参数,请把路由参数写在Request 之后。
获取请求数据
获取所有输入数据
all 方法将所有输入数据以数组形式返回。
无论是 HTML 表单请求还是 XHR 请求都可以使用。
获取指定字段
input 方法与 HTTP 方法无关,会从整个请求负载(包括查询字符串)中读取值。
获取查询字符串
query 方法只从查询字符串(URL 中 ? 之后的部分)中获取值。
input 同时覆盖请求体和查询字符串,而 query 只覆盖查询字符串。
如果要区分表单 POST 数据和 URL 参数,可以使用 query。类型化获取
除了input 外,Laravel 还提供了按指定类型获取值的方法。
动态属性
也可以直接以字段名作为属性来访问。获取部分输入数据
可以通过only 和 except 获取输入数据的子集。
判断输入是否存在
使用has 方法判断请求中是否包含某个值。
filled。
isNotFilled。
请求路径与方法的判定
获取和判定路径
获取 URL
判断 HTTP 方法
使用isMethod 判断 HTTP 方法。
文件上传
获取已上传的文件
使用file 方法获取上传的文件。
它会返回一个 Illuminate\Http\UploadedFile 实例。
hasFile。
保存文件
使用store 方法将文件保存到存储中。
文件名会自动生成。
storeAs。
示例:接收表单数据
以下示例展示了在控制器中接收用户注册表单数据。下一步
中间件
回顾如何使用中间件对请求进行过滤。