在Laravel中,我如何获得*仅*POST参数?

2022-08-30 21:17:04

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

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

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


答案 1

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

public $query- 对于 GET 参数

public $request- 用于开机自检参数

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

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

$request = Request::instance();
$request->request->get('my_param');

答案 2

为什么试图使事情复杂化,而你可以很容易地做你需要的事情:

$posted = $_POST;

推荐