如何在Laravel 5.8中用新名称覆盖$ request数组中的文件名

时间:2019-03-31 08:40:02

标签: php laravel

我想使用create($ request-> all())雄辩的方法插入数据,但问题是$ request-> all()包含文件名,该文件名是表单中的默认原始文件名,但我更改了此实际文件名作为time()标记,所以我使用$ request-> request-> add(['image'=> $ filename]);但是插入数据库后包含一个临时文件名。如何更新$ request数组中的文件名。

$filename=time().'.'.$request->file('image')->getClientOriginalExtension();
$request->file('image')->move(public_path().'/marriagepackage/',$filename);
$request->request->add(['image' =>$filename]);
$package=Marriagepackage::create($request->all());

当我检查表时,图像字段为“ D:\ xamp \ tmp \ php50C7.tmp”时,实际的期望值是$ filename中的time()戳值。

2 个答案:

答案 0 :(得分:2)

不要尝试用请求覆盖内容。这不是一个好主意。就您而言,您可以将请求数组与您的属性合并:

$package = Marriagepackage::create(array_merge($request->all(), [ "image" => $filename ]));

答案 1 :(得分:1)

简单方法

$request->request->add([
    "image" => $filename
]);