php - How to update already existing file
Solution:
It seems like you're trying to access a form field like a file. Try using $club->photo_patch = $request->file('photo_patch')->store('images','public'); instead.
For this to work, your edit form should have a file input in it (as I suspect your create form does). In order to help you better, it would be useful to see your form html as well (for both forms).
Answer
Solution:
You can upload your image this way
public function create(Request $request)
{
$imageName=date('d').time().date('m').'.'.$request->image->extension();
$request->image->move(public_path('image'),$imageName);
$id = Auth::id();
$club = new Club;
$club->name = $request->name;
$club->description = $request->description;
$club->address = $request->address;
$club->city_id = $request->city_id;
$club->user_id = $id;
$club->photo_patch = $imageName;
// $path = $request->photo_patch->store('images','public');
// dd($club->photo_patch);
$club->save();
return redirect('clubs');
}
public function update(Request $request)
{
$imageName=date('d').time().date('m').'.'.$request->image->extension();
$request->image->move(public_path('image'),$imageName);
$data = Club::find($request->id);
$data->name = $request->name;
$data->description = $request->description;
$data->address = $request->address;
$data->photo_patch = $imageName;
$data->city_id = $request->city_id;
$data->save();
return redirect('clubs');
}
Answer
Solution:
public function update(Club $club, Request $request) {
$club->update([
"name" => request->name,
...
]);
return redirect('clubs');
}
Route:
Route::get('update-club/{$club}' [AppControlller::class, 'update']);
Source