无法替换请求中的文件

时间:2018-02-02 16:00:24

标签: laravel laravel-5.2

我有一个奇怪的...我添加了一个音频文件,这是请求中的现有文件

$file = $request->file('file')[0];
$request->files->add(['audio' => $file]);

当我dd($request->files->all())时,我看到新添加的'audio'元素。但是,当我dd($request->allFiles())时,我看到原始数组。

我甚至为Illuminate\Http\Request添加了文件的替换方法,以便在没有运气的情况下替换$files

public function replaceFiles($files) {
    $this->files = $files; 
}

我错过了什么吗?

好像$request->files中的$this->files$request是两个不同的东西。

注意到问题出在$this->convertedFiles Illuminate\Http\Request,可以通过将allFiles()更改为与

类似的内容来解决
/**
 * Get an array of all of the files on the request.
 *
 * @return array
 */
public function allFiles()
{
    $files = $this->files->all();

    return $this->convertedFiles && count($this->convertedFiles) == count($this->files->all())
                ? $this->convertedFiles
                : $this->convertedFiles = $this->convertUploadedFiles($files);
}

我决定延长App\Http\Requests\Request并使用我上面提到的调整allFiles()

1 个答案:

答案 0 :(得分:0)

您可以使用合并功能将新数据添加到请求对象中。

$request->merge(['index_name' => $variable]);