Level 27
For update you have to use find($id) and the delete the old one before updating it to a new one.
Here I give you an example of an update functions for reference (this is a function to update banner slides in a company profil website):
HomeSlidesController.php
public function update(Request $request, $id)
{
//
$id = $request->id;
$slides = HomeSlides::find($id);
if($slides->image){
$this->validate($request, [
'title' => 'required'
]);
}else{
$this->validate($request, [
'title' => 'required',
'slides' => 'required|image|mimes:jpg,jpeg,png|max:10000|dimensions:min_width=1950,min_height=550,max_width=2050,max_height=650'
]);
}
$file = $request->file('slides');
if($file)
{
//storage/app
Storage::delete($slides->image);
//storage/app/slides/random.jpeg
$path = $request->file('slides')->store('public/slides');
Log::info('path :'.$path);
$slides->image = $path;
}
$slides->title = $request->title;
$slides->update();
Session::flash('flash', 'Successfully save data');
$slides = HomeSlides::find($id);
return view('admin.home.edit_home_slides')->with('list', $slides);
}