我想在验证通过时将 Laravel 请求合并到新值
但我无法合并或替换输入文件的输入键值
我需要更改输入键值以生成唯一的文件名
并将其存储在存储中
这是我的代码:
public function store(Request $request)
{
if ($request->hasFile('photo')) {
$photo = $request->file('photo');
$filename = sha1(uniqid()) . '.' . $photo->getClientOriginalExtension();
Storage::disk('photo')->put($filename, $photo->get());
$request->merge([
'photo' => $filename,
]);
}
return $request->all();
}
预期结果:
[
'id' => '60028942359046444097',
'name' => 'Mio Akiyama',
'photo' => '0c7b34056cb58e812376b84279605129b22646c7.jpg',
]
实际结果:
[
'id' => '60028942359046444097',
'name' => 'Mio Akiyama',
'photo' => [
],
]
最佳答案
首先将请求数组分配给一个变量。
$array = $request->all();
然后,您就可以操作该数组变量的数据。
$array['photo'] = $filename;
return $array;
关于laravel - 无法合并请求输入文件 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61810570/