/** * Save Images from temporary folder to Storage and store it in database * * @param Item $item * @param Supplier $supplier * @param array $images * * @return */ public static function saveImages($item, $supplier, $request) { // Get the short name of supplier $supplier = $supplier->shortname; $path = 'pictures/' . $supplier . '/'; foreach ($request->images['image'] as $image) { $picture = Picture::where('path', '=', $path . $image)->first(); $first_choice = $request->picture == $image ? 1 : 0; // If Picture exist in database, check if it's attached to this Item. // If Picture don't exist in database, create it and attach it to this Item. if ($picture === null) { $picture = new Picture(['path' => $path, 'title' => $image]); $picture->save(); $picture->moveImage(); $item->pictures()->attach($picture->id, ['first_choice' => $first_choice]); } elseif ($picture) { // If item don't have picture attached, attach it! if (!$item->hasPicture($picture->id)) { $item->pictures()->attach($picture->id); } } } }