Laravel更新后删除旧图像



我希望用户的旧图像在更新时被删除。这个当前的函数没有按我想要的方式工作。我该如何改变它,让它起作用?

public function update($id)
{
$profile = Profile::findOrFail($id);

$data = request()->validate([
'title' => 'required|max:255',
'image' => ''
]);

if ($profile->image) {
if (Storage::exists("storage/{$profile->image}")) {
Storage::delete("storage/{$profile->image}");
}
}

if (request('image')) {
$imagePath = request('image')->store('profile', 'public');
$image = Image::make(public_path("storage/{$imagePath}"))->orientate()->fit(1000, 1000); //Intervention Image Package
$imageArray = ['image' => $imagePath];
$image->save();
}



// $profile->image = $request->image; //Lägg till senare

$profile->update(array_merge(
$data,
$imageArray ?? [],
));



return redirect("/profile/{$profile->user_id}");
}
}

首先你必须把旧的图片从服务器上删除

if (file_exists(('./images/partners/' . $partner->image_path))) {
unlink(('./images/partners/' . $partner->image_path));
}

之后,您可以上传您的新图像并更新数据库中的记录

最新更新