Laravel合并/替换请求 - 文件

时间:2016-02-05 23:29:08

标签: php laravel request laravel-5.1

我一直在merge()课程中使用replace()Request方法。它在大多数情况下都在工作,但我认为merge()会添加或覆盖现有参数,而replace()会清除所有参数并添加新的数组然而,他们都按照我的想象merge()工作。我在这里错过了什么吗?

此外,还有一种方法可以merge()replace()使用文件,同时仍然使用hasFile()方法吗?基本上我正在做的是调整API调用的请求。所以我在请求中接收文件作为一个参数,并将其重新映射到另一个参数名称,以便它与后端期望的匹配。使用任一方法后,当我执行dd($request->all())时,请求一目了然,但hasfile()返回false。

我确实对Http\Illuminate\Request课程进行了深入研究,我认为我发现问题是我的文件没有设置为$_FILES。所以它确实按预期工作。

话虽如此,有什么特别的方法可以完成我想要做的事情吗?

1 个答案:

答案 0 :(得分:0)

要回答问题的第一部分:

我直接去了消息来源,确认功能确实有所不同:

合并调用使用array_replace (php.net) add 函数:

public function add(array $parameters = array())
{
    $this->parameters = array_replace($this->parameters, $parameters);
}

同时

替换仅替换整个变量(数组)

public function replace(array $parameters = array())
{
    $this->parameters = $parameters;
}

所以您最初的印象实际上是正确的。