上传后的laravel更改请求

上传后的laravel更改请求,laravel,laravel-5,laravel-5.3,Laravel,Laravel 5,Laravel 5.3,上传文件后尝试更新我的请求:(Laravel 5.3) $path=Storage::disk('s3')->putFile($destination,$request->file($name));//作品 $request->merge(数组($name=>$path));//不起作用 $myModel->update($request->all()) 我知道我不能在请求中用字符串替换文件,那么我该怎么做呢 看到了很多关于这方面的帖子,但很常见,这肯定比: $res=$request->

上传文件后尝试更新我的请求:(Laravel 5.3)


$path=Storage::disk('s3')->putFile($destination,$request->file($name));//作品
$request->merge(数组($name=>$path));//不起作用
$myModel->update($request->all())

我知道我不能在请求中用字符串替换文件,那么我该怎么做呢

看到了很多关于这方面的帖子,但很常见,这肯定比:


$res=$request->except($myInputFileName)//将其转换为数组
$res[$myInputFileName]=$path

有什么好办法吗

编辑:暂时不使用:将请求作为数组处理

只需执行以下操作:

$request[$name] = $path;
但是,我怀疑您是否希望使用
$name
作为列名,因此您可能希望将
$name
$path
保存到名为
文件名
文件路径
的列中?然后这样做:

$request['name'] = $name;
$request['path'] = $path;
之后,您可以使用以下工具检查
$request
内容:

dd($request->all());

为什么不试试这个呢

$inputData = $request->all();
$path = Storage::disk('s3')->putFile($destination, $request->file($name));
$inputData[$name] = $path;
$myModel->update($inputData);

@r、 flipo,到底什么不起作用?你有错误吗?没有,但正如我在帖子中所说的,你不能在请求字符串中更改请求文件。所以这不会改变我的想法request@r.flipo,刚刚尝试了更新的代码,效果很好。使用laravel 5.3.18,更新仍然不起作用:($request['picture']是UploadedFile的一个实例,其路径名是私有的,我无法将其重写为字符串。感谢您的时间,我将使用arrays!@r.flipo,您没有说过任何关于重写上载文件的内容。在5.3中,当我重写或添加新的简单数据(如字符串)时,它对我有效。您到底想实现什么?通常在您启动之后加载罚款,你需要把它的名字保存在一个数据库中,如果你使用我的答案中的代码,这个数据库就会工作。是的,我知道我可以通过在数组中转换我的请求来实现它(正如我在帖子中所说的)我只是觉得有一个更好的方法:比如我的文件输入的路径名会改变automatically@r.flipo,当您这样做时,您将使用大量额外的内存,因为您正在从请求对象复制几乎所有的请求数据