Laravel 5只能从请求获得GET或POST参数

时间:2015-07-23 11:13:45

标签: php laravel request laravel-5

我可以使用Request::input()Request::all()访问请求参数。

问题是我的请求包括GET和POST参数,但只有GET用于计算签名。

有没有办法从Laravel 5.1中的请求中只检索一组GET或一组POST参数?

或者使用$ _GET和$ _POST是我唯一的选择吗?

谢谢。

3 个答案:

答案 0 :(得分:6)

您可以使用 Request :: query()仅获取 GET 参数。请记住,对于从GET获取的参数顺序没有保证一致性,因此您可能需要在计算签名之前对数组进行排序 - 具体取决于您如何计算签名。

答案 1 :(得分:3)

如果您需要直截了当的话,可以使用全局帮助器:

$pathData = request()->path(); <br />
$queryData = request()->query(); <br />
$postData = array_diff(request()->all(), request()->query());

https://laravel.com/docs/5.6/requests

答案 2 :(得分:1)

按照以下说明使用您自己的扩展Laravel Request类:

https://stackoverflow.com/a/30840179/517371

然后,在您自己的Request类中,从input()复制Illuminate\Http\Request方法并删除+ $this->query->all()

public function input($key = null, $default = null)
{
    $input = $this->getInputSource()->all();

    return data_get($input, $key, $default);
}

宾果!现在在POST请求中,Request::query()返回查询(URL)参数,而Request::input()仅返回表单/ multipart / JSON /任何输入源中的参数。