/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Requests\Product $request, $id) { try { DB::beginTransaction(); $product = Product::findOrFail($id); $product->name = $request->input('name'); $product->model = $request->input('model'); if ($request->hasFile('photo')) { $extension = strtolower($request->file('photo')->getClientOriginalExtension()); $validExtensions = ['jpg', 'jpeg', 'png']; $photoName = uniqid() . '.' . $extension; if (in_array($extension, $validExtensions)) { File::delete('uploads/products/' . $product->photo); Image::make($request->file('photo'))->resize(260, 180, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save('uploads/products/' . $photoName); $product->photo = $photoName; } else { flash()->error('Image must be of extension jpg/png'); return redirect()->back(); } } $product->added_by = auth()->user()->id; $product->update(); if ($request->has('category_id') && count($request->input('category_id')) > 0) { $product->categories()->sync($request->input('category_id')); } DB::commit(); flash()->success('Product information updated successfully.'); return redirect()->back(); } catch (\Exception $e) { DB::rollback(); flash()->error('Something went wrong. Please try again later.'); return redirect()->back(); } }