validate([ 'name' => 'required', 'description' => 'required', 'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048' ]); $image = $request->file('image'); $imageName = time() . '.' . $image->extension(); $image->storeAs('public/bestsellers', $imageName); Bestseller::create([ 'name' => $request->name, 'description' => $request->description, 'image' => $imageName ]); return redirect()->back()->with('success', 'Bestseller added successfully'); } public function update(Request $request, Bestseller $bestseller) { $request->validate([ 'name' => 'required', 'description' => 'required', 'image' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048' ]); $data = [ 'name' => $request->name, 'description' => $request->description ]; if ($request->hasFile('image')) { // Delete old image if ($bestseller->image) { Storage::delete('public/bestsellers/' . $bestseller->image); } // Store new image $image = $request->file('image'); $imageName = time() . '.' . $image->extension(); $image->storeAs('public/bestsellers', $imageName); $data['image'] = $imageName; } $bestseller->update($data); return redirect()->back()->with('success', 'Bestseller updated successfully'); } public function destroy(Bestseller $bestseller) { if ($bestseller->image) { Storage::delete('public/bestsellers/' . $bestseller->image); } $bestseller->delete(); return redirect()->back()->with('success', 'Bestseller deleted successfully'); } }