/** * Store database */ public function store(MoviesRequest $request) { $dateoutput = \DateTime::createFromFormat('d/m/Y', $request->date_release); $movie = new Movies(); $movie->type = $request->type; $movie->title = $request->title; $movie->synopsis = $request->synopsis; $movie->description = $request->description; $movie->trailer = $request->trailer; $movie->date_release = $dateoutput; $movie->visible = $request->visible; $movie->cover = $request->cover; $movie->languages = $request->lang; $movie->categories_id = $request->categories_id; $movie->note_presse = $request->note_presse; $movie->distributeur = $request->distributeur; $filename = ""; if ($request->hasFile('image')) { $file = $request->file('image'); $filename = $file->getClientOriginalName(); // Récupère le nom original du fichier $destinationPath = public_path() . '/uploads/movies'; // Indique où stocker le fichier $file->move($destinationPath, $filename); // Déplace le fichier } $movie->image = asset("uploads/movies/" . $filename); $movie->save(); $actors = $request->actors; if (isset($actors)) { foreach ($actors as $actor) { DB::table('actors_movies')->insert([['movies_id' => $movie->id, 'actors_id' => $actor]]); } } $directors = $request->directors; if (isset($directors)) { foreach ($directors as $director) { DB::table('directors_movies')->insert([['movies_id' => $movie->id, 'directors_id' => $director]]); } } Session::flash('success', "Le film {$movie->title} a été enregistré"); return Redirect::route('movies_index'); }
/** * action pour enregistrer en bdd les données du formulaire * la classe Request permet de receptionner les données en POST de manière sécurisée * sans gestion des contraintes de validation en amont * * Avec contraintes et utilisation d'une classe liée à FormRequest en amont: * MoviesRequest représente le formulaire * et la requête en POST du formulaire * * * on rentre dans la méthode seulement si il n'y a plus d'erreur dans le * formulaire */ public function store(MoviesRequest $request) { //récupérer le titre du film en POST //input(nom du champ) permet de récupérer la donnée en POST de façon sécurisée //$title = $request->input("title"); //$description = $request->input("description"); //exit() permet de sortir de l'exécution php //dump() permet le débuguage //exit(dump($title, $description)); $movie = new Movies(); foreach ($request->except('_token') as $key => $value) { $movie->{$key} = $value; } /** * traitement de l'upload de l'image */ $filename = ""; // si j'ai un fichier image if ($request->hasFile('image')) { //recuperation de l'image $file = $request->file('image'); //recuperation du nom du fichier $filename = $file->getClientOriginalName(); //stockage du chemin vers lequel l'image va etre envoyée $destinationPath = public_path() . '/uploads/movies'; //deplacement de l'image uploadée $file->move($destinationPath, $filename); } //mise à jour de la propriété de l'objet Movies $movie->image = asset('/uploads/movies/' . $filename); /** * les dates created_at et updated_at sont mises à jour automatiquement * par Laravel */ // //on renseigne la date de création si elle est vide // if(!$request->has('created_at')){ // $now = new \DateTime('NOW'); // $now = date_format($now, 'Y-m-d H:i:s'); // $movie->created_at = $now ; // } // // //mise à jour de la date d'édition, à chaque fois // $now = new \DateTime('NOW'); // $now = date_format($now, 'Y-m-d H:i:s'); // $movie->updated_at = $now ; //sauvegarde de l'objet Movies en base $movie->save(); //creer un messsage flash de type success Session::flash('success', "Le film {$movie->title} a bien été créé."); //redirection vers la liste des films return Redirect::route('movies_index'); }