/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $spaceship = Spaceships::findOrFail($id); // Split carousel string $carousel = explode(';', $spaceship->carousel); // Real or Not $spaceship->real = $spaceship->real ? 'Да' : 'Нет'; $meta_title = $spaceship->meta_title; $meta_desc = $spaceship->meta_desc; return view('spaceships.show', compact('spaceship', 'carousel', 'meta_title', 'meta_desc')); }
/** * Update spaceship * @param $id * @param SpaceshipRequest $request * @return Redirect */ public function update($id, SpaceshipRequest $request) { $spaceships = new Spaceships(); $flight = $spaceships->findOrFail($id); // Иначе не обновит $data = $request->all(); // If has detail image if ($request->hasFile('detail_image')) { // Upload new file $detailName = $this->UploadImage($request, $request->file('detail_image'), 'detail_image'); $r = File::delete($this->destinationPath . $flight->detail_image); // delete old preview image $data['detail_image'] = $detailName; } // If has preview image if ($request->hasFile('preview')) { // Upload new file $previewName = $this->UploadImage($request, $request->file('preview'), 'preview'); File::delete($this->destinationPath . $flight->preview); // delete old preview image $data['preview'] = $previewName; } // If has carousel image if ($request->hasFile('carousel')) { $carousel_request = $request->file('carousel'); // Carousel Arr from DB $carousel_arr = explode(';', $flight->carousel); // If carousel from DB not empty if ($carousel_arr[0] !== "") { // Get uniq name of carousel foreach ($carousel_arr as $name) { $carousel_arr_uniq[] = $this->getUniqCarouselName($name); } foreach ($carousel_request as $key => $image) { $imageName = $image->getClientOriginalName(); if (in_array($flight->carousel, $carousel_arr_uniq)) { continue; } // generate hash for uniq image name $imageName = $this->generateNameForPreview($imageName); // Add to db fiel $flight->carousel .= ';' . $imageName; // Upload file $request->file('carousel')[$key]->move($this->destinationPath, $imageName); } } else { foreach ($carousel_request as $key => $image) { $imageName = $image->getClientOriginalName(); // generate hash for uniq image name $imageName = $this->generateNameForPreview($imageName); // Add to db field $flight->carousel .= ';' . $imageName; // Upload file $request->file('carousel')[$key]->move($this->destinationPath, $imageName); } // Delete first char (Иначе трабл при удалении картинки) $flight->carousel = ltrim($flight->carousel, ";"); } // Add to data to update $data['carousel'] = $flight->carousel; } // Update Json file $this->updateJsonFile($flight->name, $data['name']); $flight->update($data); session()->flash('flash_message', 'Корабль обновлен.'); return redirect('admin'); }