19

我知道可以在 Laravel中使用$request->get('my_param')或获取 POST 或 GET 请求参数(我现在正在玩 v5/dev 版本,但对于 4.2 也是一样)。Input::get('my_param')

但是我如何确保我的my_param来自 POST 参数,而不仅仅是来自?my_param=42附加到 URL 的?(除了恢复到 ol'$_POST$_GETsuperglobals 并将可测试性抛到窗外)

(注意:我也知道该Request::get方法将为我提供 POST 请求的 POST 参数,如果两个具有相同名称的 POST 和 URL/GET 参数都存在,但是......但如果参数通过 url 查询字符串进入相反,我想要一种 Laravel 惯用的方式来了解这一点)

4

2 回答 2

19

在类Illuminate\Http\Request(或者实际上是它扩展自 Symphony 类Symfony\Component\HttpFoundation\Request)中,有两个类变量存储请求参数。

public $query- 对于 GET 参数

public $request- 对于 POST 参数

两者都是Symfony\Component\HttpFoundation\ParameterBag实现get方法的实例。

这是你可以做的(虽然它不是很漂亮)

$request = Request::instance();
$request->request->get('my_param');
于 2014-12-08T21:31:23.673 回答
-4

当您可以轻松完成所需的事情时,为什么还要尝试使事情复杂化:

$posted = $_POST;
于 2016-10-10T12:44:59.980 回答