在Laravel中,我怎样才能获得***POST参数?

Neu*_*onQ 17 php http-post laravel laravel-request

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

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

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

luk*_*ter 17

在类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');
Run Code Online (Sandbox Code Playgroud)

  • 或者您可以使用以下语法:`$ request = Input :: instance() - > request-> get('my_param');`但同样的事情,只是说, (3认同)
  • $request->post() 或 Request::post() (2认同)