Request 对象访问任何基于 HTTP 请求传递的所有信息,包括从 HTML 表格用 POST 方法或 GET 方法传递的参数、cookie 和用户认证。Request 对象使您能够访问客户端发送给服务器的二进制数据。
laravel Request实例子
如果你在一个命名空间里,你需要在类文件的顶部使用 use Request; 这条声明来导入 Request 这个 facade 。
<?php
namespace App\Http\Controllers\Seodd;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DemoController extends Controller
{
//获取所有请求参数
public function panmouren(Request $request){
$row = Request::all();
$row = $request->all();
dd($row);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
注意:可以这么理解大多数情况下,使用的时候‘Request::’等价于‘$request->’。
检索输入
使用几个简单的方法,你可以得到在 Illuminate\Http\Request 实例上的用户的所有的输入。你不用管请求使用的 HTTP 动作是什么,可以使用同样的方法来得到所有的输入的值。
input
$name = Request::input('name');
$name = $request->get('name');
以上两种方法都可以实现,适用于在获取http请求提交的参数,‘name’为需要获取的提交的参数名称。
确定是否存在一个参数
//确定是否存在一个参数
if (Request::has('name'))
{
//确定是否存在一个参数
}
2
3
4
5
只获取部分参数
//只获取部分参数
$formdata = Request::only('username', 'password');
2
除去某个参数
//除去某些参数
$formdata = Request::except('username', 'password');
2
获取除了’username’, ‘password’,所有Request请求中的参数
Cookies操作
Laravel 框架创建的所有的 Cookies 都是加密的,并且会签上一个认证的代码,意思就是如果这些 Cookies 在客户端那里被修改过,就会被认为是无效的 Cookies。
Laravel 框架自带的csrf令牌有有效的避免xss等攻击行为的出现。
获取cookie值
$value = Request::cookie('seodd');
获取了name为“seodd”的cookie的值
文件
file 方法返回来的对象是 Symfony\Component\HttpFoundation\File\UploadedFile 类的一个实例,这个类继承了 PHP 的 SplFileInfo 类,提供了很多方法可以跟文件交互。
检索一个上传了的文件
$file = Request::file('seodd');
注意文件类操作时候务必引用相关依赖的类‘use Symfony\Component\HttpFoundation\File\UploadedFile’
确定一个文件是否存在
if (Request::hasFile('seodd'))
{
//确定是否存在seodd这个文件
}
2
3
4
确定上传的文件是否有效
if (Request::file('seodd')- isValid())
{
//确定是否存在seodd这个文件,是否是一个有效文件
}
2
3
4
获取url
laravel中我们常常需要获取当前的url,但是每个获取的都不一样,我们有时候需要获取的需求也不相同,所以我这里汇总一下,方便以后查询和使用。
// 返回当前页面的完整路径url: http://chateach.com/aa/bb
Request::url();
$request->url()
// 路径: /seo/suanfa
Request::path();
$request->path();
// 获取请求 Uri: /seo/suanfa/?c=d
Request::getRequestUri();
$request->getRequestUri();
// 获取 Uri: http://chateach.com/seo/suanfa/?c=d
Request::getUri();
$request->getUri();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
检索请求方法
$method = Request::method();
if (Request::isMethod('post'))
{
//判断是否是一个post请求
}
2
3
4
5
确定请求路径是否匹配一个模式
if (Request::is('seo/*'))
{
//确认是否能够匹配到url路径为“seo/*”
}
2
3
4
获取url地址
//获取完成url地址
$url = Request::url();
//获取url路径部分
$url = Request::path();
2
3
4
获取请求的ip
$ip = $request->ip();
获取端口
$port = $request->getPort();
获取请求头信息
$res = $request->header('Connection')