コード例 #1
0
 /**
  * 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'));
 }
コード例 #2
0
 /**
  * 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');
 }