/** * 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é !'); }