/**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(ProductFormRequest $request, $id)
 {
     $product = Product::findOrFail($id);
     $product->update($request->all());
     // gestion du champ date : // 02-01-2016 (vue) => 2016-01-02 (bdd)
     $t = Input::get('published_at');
     // string
     $time = Carbon::createFromFormat('d-m-Y', $t)->toDateTimeString();
     $product->published_at = $time;
     // gestion du checkbox boolean 'en ligne?' :
     $product->status = empty($request->input('status')) ? 0 : 1;
     // gestion de l'extrait :
     $content = Input::get('content');
     $contentReduct = substr($content, 0, 40) . '...';
     $product->abstract = $contentReduct;
     $product->save();
     // envoi des tags a la bdd :
     if (!empty($request->input('tags'))) {
         $product->tags()->sync($request->get('tags'));
     }
     if (Input::hasFile('image')) {
         $destinationPath1 = 'uploads/main/';
         $destinationPath2 = 'uploads/preview/';
         $destinationPath3 = 'uploads/mini/';
         $extension = Input::file('image')->getClientOriginalExtension();
         $fileName1 = Str::random(10) . Carbon::now()->timestamp . '.' . $extension;
         $fileName2 = Str::random(10) . Carbon::now()->timestamp . '.' . $extension;
         $fileName3 = Str::random(10) . Carbon::now()->timestamp . '.' . $extension;
         \Intervention\Image\Facades\Image::make(Input::file('image')->getRealPath())->fit(970, 450)->save($destinationPath1 . $fileName1)->fit(550, 375)->save($destinationPath2 . $fileName2)->resize(100, null, function ($constraint) {
             $constraint->aspectRatio();
         })->save($destinationPath3 . $fileName3);
         // on insere un champ 'uri' + 'uri_preview' dans la bdd 'images' :
         $image = Image::create($request->all());
         $image->uri = $fileName1;
         $image->uri_preview = $fileName2;
         $image->uri_mini = $fileName3;
         $image->status = 1;
         // 1 pour validé
         $image->save();
         // on insere un champ 'id' dans la bdd 'posts' :
         $image_id = $image->id;
         $product->image_id = $image_id;
         $product->save();
     }
     return redirect(route('admin.products.edit', $id))->with('message', 'Le produit a bien été modifié !');
 }