我一直在merge()
课程中使用replace()
和Request
方法。它在大多数情况下都在工作,但我认为merge()
会添加或覆盖现有参数,而replace()
会清除所有参数并添加新的数组然而,他们都按照我的想象merge()
工作。我在这里错过了什么吗?
此外,还有一种方法可以merge()
或replace()
使用文件,同时仍然使用hasFile()
方法吗?基本上我正在做的是调整API调用的请求。所以我在请求中接收文件作为一个参数,并将其重新映射到另一个参数名称,以便它与后端期望的匹配。使用任一方法后,当我执行dd($request->all())
时,请求一目了然,但hasfile()
返回false。
我确实对Http\Illuminate\Request
课程进行了深入研究,我认为我发现问题是我的文件没有设置为$_FILES
。所以它确实按预期工作。
话虽如此,有什么特别的方法可以完成我想要做的事情吗?
答案 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;
}
所以您最初的印象实际上是正确的。