/**
  * fonction store pour créer ou éditer
  * @param AdministratorsRequest $request
  * @param $id (facultatif), valeur null par defaut
  *
  */
 public function store(AdministratorsRequest $request, $id = null)
 {
     if (!empty($id)) {
         $administrator = Administrators::find($id);
     } else {
         $administrator = new Administrators();
     }
     $administrator->firstname = $request->firstname;
     $administrator->lastname = $request->lastname;
     $administrator->email = $request->email;
     $administrator->description = $request->description;
     if (!empty($administrator->password)) {
         $administrator->password = bcrypt($request->password);
         //if en mode edit
     }
     $administrator->super_admin = $request->super_admin;
     $administrator->expiration_date = new \DateTime('+1 year');
     $administrator->active = true;
     /**
      * traitement de l'upload de l'image
      */
     $filename = "";
     // si j'ai un fichier image
     if ($request->hasFile('photo')) {
         //recuperation de l'image
         $file = $request->file('photo');
         //recuperation du nom du fichier
         $filename = $file->getClientOriginalName();
         //stockage du chemin vers lequel l'image va etre envoyée
         $destinationPath = public_path() . '/uploads/administrators';
         //deplacement de l'image uploadée
         $file->move($destinationPath, $filename);
         //mise à jour de la propriété de l'objet administrators
         $administrator->photo = asset('/uploads/administrators/' . $filename);
     }
     //sauvegarde de l'objet administrators en base
     $administrator->save();
     //creer un messsage flash de type success
     if (!empty($id)) {
         Session::flash('success', "L'administrateur {$administrator->firstname}  {$administrator->lastname} a bien été modifié.");
     } else {
         Session::flash('success', "L'administrateur {$administrator->firstname}  {$administrator->lastname} a bien été créé.");
     }
     //redirection vers la liste des admins
     return Redirect::route('administrators_index');
 }
 /**
  * To store an administrators
  * ARgument $id est facultatif: null est sa valeur par défaut
  */
 public function store(AdministratorsRequest $request, $id = null)
 {
     // creation: créer un nouvel administrateur
     if ($id == null) {
         $administrator = new Administrators();
     } else {
         // edition: récupérer un administrateur
         $administrator = Administrators::find($id);
     }
     $administrator->firstname = $request->firstname;
     $administrator->lastname = $request->lastname;
     $administrator->email = $request->email;
     $administrator->description = $request->description;
     // si l'utilisateur modifie
     // son mot de passe en mode edition
     if (!empty($request->password)) {
         $administrator->password = bcrypt($request->password);
         //if en mode edit
     }
     $administrator->super_admin = $request->super_admin;
     $administrator->expiration_date = new \DateTime('+1 year');
     $administrator->active = true;
     //upload
     $filename = "";
     if ($request->hasFile('image')) {
         $file = $request->file('image');
         $filename = $file->getClientOriginalName();
         // Récupère le nom original du fichier
         $destinationPath = public_path() . '/uploads/administrators';
         // Indique où stocker le fichier
         $file->move($destinationPath, $filename);
         // Déplace le fichier
         $administrator->photo = asset("uploads/administrators/" . $filename);
     }
     $administrator->save();
     // Auth::login($administrator); => Autologin
     Session::flash('success', "L'administrateur {$administrator->email} a bien été crée");
     return Redirect::route('administrators_index');
 }