/** * Modifie les joueurs faisant partie de l'équipe * * @param int $id * @return \Illuminate\Http\Response */ public function update($id) { try { $equipe = Equipe::findOrFail($id); // L'équipe doit être une équipe if (!$equipe->equipe) { App::abort(404); } $equipe->equipe = true; $equipe->nom = Input::get('nom'); $equipe->numero = Input::get('numero'); $membres = Input::get('joueur'); if ($membres) { if (is_array($membres)) { // Les joueurs sélectionnés doivent exister $participants = Participant::whereIn('id', $membres); if ($participants->count() != count($membres)) { App::abort(404); } // Les joueurs sélectionnés ne doivent pas être des équipes if ($participants->where('equipe', '<>', '0')->count() > 0) { App::abort(404); } } elseif (Participant::findOrFail($membres)->equipe) { App::abort(404); } } if ($equipe->save()) { // Associer les membres à l'équipe if ($membres) { if (is_array($membres)) { $equipe->membres()->sync($membres); } else { $equipe->membres()->sync([$membres]); } } else { $equipe->membres()->detach(); } // Redirection dans la page de visualisation de l'équipe return Redirect::action('EquipesController@show', $equipe->id); } else { return Redirect::back()->withInput()->withErrors($equipe->validationMessages()); } } catch (Exception $e) { App: abort(404); } }