/** * Inscrit une nouvelle équipe dans la table 'participants' */ public function store() { try { $equipe = new Equipe(); $equipe->equipe = true; $equipe->naissance = new DateTime(); $equipe->nom = Input::get('nom'); $equipe->numero = Input::get('numero'); $equipe->region_id = Input::get('region_id'); //une équipe participe à un et un seul sport. Contrairement à un participant qui peut faire plusieurs sports. $sport = Sport::findOrFail(Input::get('sport')); if ($equipe->save()) { if (Input::has('sport')) { $equipe->sports()->sync([$sport->id]); } else { $equipe->sports()->detach(); } // Redirection dans la page d'édition de l'équipe return Redirect::action('EquipesController@edit', $equipe->id)->with('status', 'L\'équipe a été initialisée! Sélectionnez maintenant les joueurs qui en font partie.'); } else { return Redirect::back()->withInput()->withErrors($equipe->validationMessages()); } } catch (Exception $e) { App: abort(404); } }
/** * Affiche les participants associés au sport sélectionné par région. * * @param[in] int $id l'id du sport qu'on sélectionne. */ public function index($id) { try { $sport = Sport::findOrFail($id); $regions = Region::all()->sortby('nom'); $participants = $sport->participants->sortby('nom'); return View::make('sportParticipant.index', compact('regions', 'participants', 'sport')); } catch (ModelNotFoundException $e) { App::abort(404); } }
/** * Verifie si un id de sport existe. * Si oui:le retourne. Si non: retourne l'id du premier sport dans la liste * * @param array $sports * liste des sports. Utilisé si $sportId = 0 afin de choisir une valeur par défaut * @param int $sportId * un id de sport. Un sport avec cet id doit exister, sinon la le premier id de la liste sera utilisé * @return int */ protected function checkSportId($sports, $sportId) { if ($sportId != 0) { // verifie que le sportid passé en paramêtre existe. try { $sport = Sport::findOrFail($sportId); } catch (Exception $e) { // si il n'existe pas, on prend celui du premier sport dans la liste $sportId = $sports[0]->id; } } else { // par default on prend le premier sport $sportId = $sports[0]->id; } return $sportId; }
/** * Efface la ressource de la bd. * * @param int $id l'id du sport à effacer * @return Response */ public function destroy($id) { try { $sport = Sport::findOrFail($id); $sport->delete(); return Redirect::action('SportsController@index'); } catch (Exception $e) { App::abort(404); } }
/** * Mise à jour d'une épreuve associée à un sport * * @param[in] int $sportId l'id du sport auquel est associé l'épreuve * @param[in] int $epreuveId l'id de l'épreuve */ public function update($sportId, $epreuveId) { try { $sport = Sport::findOrFail($sportId); //juste pour s'assurer que l'id de classe passé en paramêtre est valide, sinon: 404. } catch (ModelNotFoundException $e) { App::abort(404); } $input = Input::all(); $epreuve = $sport->epreuves()->where('id', '=', $epreuveId)->first(); $epreuve->nom = $input['nom']; $epreuve->description = $input['description']; $epreuve->sport_id = $sportId; if ($epreuve->save()) { return Redirect::action('SportsEpreuvesController@index', $sportId); } else { return Redirect::back()->withInput()->withErrors($epreuve->validationMessages); } }