src/Controller/ExperienceController.php line 112

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Experience;
  4. use App\Form\ExperienceType;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\String\Slugger\SluggerInterface;
  11. class ExperienceController extends AbstractController
  12. {
  13.     public function __construct(EntityManagerInterface $manager)
  14.     {
  15.         $this->manager $manager;
  16.     }
  17.     /* ------------------ Poster une éxperience ----------------*/
  18.     /**
  19.      * @Route("/experience", name="app_experience")
  20.      */
  21.     public function index(Request $request): Response
  22.     {
  23.         // Creation de l'instance Experience
  24.         $experience = new Experience();
  25.         // Création du formulaire à partir d'une classe issu du fichier CompetenceType.php
  26.         $formExp $this->createForm(ExperienceType::class, $experience);
  27.         // Traitement du formulaire
  28.         $formExp->handleRequest($request);
  29.         // Si le formulaire est soumis et validé , alors...
  30.         if ($formExp->isSubmitted() && $formExp->isValid()) {
  31.             // $projet->setPublication(new \datetime);
  32.             // $projet->setAuteur($this->getUser()->getNomComplet());
  33.             // On persiste l'experience professionnelle'
  34.             $this->manager->persist($experience);
  35.             // On le flush
  36.             $this->manager->flush();
  37.         }
  38.         return $this->render('experience/index.html.twig', [
  39.             'monExp' => $formExp->createView(),
  40.         ]);
  41.     }
  42.     /* ------------------ Effacer une expérience ---------------- */
  43.     /**
  44.      * @Route("/experience/delete/{id}", name="app_experience_delete")
  45.      */
  46.     public function expDelete(Experience $experienceRequest $request): Response
  47.     {
  48.         // On efface la compétence
  49.         $this->manager->remove($experience);
  50.         // On flush
  51.         $this->manager->flush();
  52.         return $this->redirectToRoute('app_home');
  53.     }
  54.     /* ------------------ Modifier l'expérience' ---------------- */
  55.     /**
  56.      * @Route("/expérience/edit/{id}", name="app_experience_edit")
  57.      */
  58.     public function expEdit(Experience $expModifRequest $request): Response
  59.     {
  60.         $expModif $this->createForm(ExperienceType::class, $expModif);
  61.         // Traitement du formulaire
  62.         $expModif->handleRequest($request);
  63.         // Si le formulaire est soumis et validé , alors...
  64.         if ($expModif->isSubmitted() && $expModif->isValid()) {
  65.             // On persiste l'expérience modifié
  66.             $this->manager->persist($expModif);
  67.             // On le flush 
  68.             $this->manager->flush();
  69.             // On redirige ensuite à la page qui liste les expériences
  70.             return $this->redirectToRoute('app_all_experiences');
  71.         }
  72.         return $this->render('experience/editExp.html.twig', [
  73.             // Matérialise l'affichage du formulaire
  74.             'myEditExp' => $expModif->createView(),
  75.         ]);
  76.     }
  77.     /* ------------ Recherche et trouve tous les experiences professionnelles ------------ */
  78.     /**
  79.      * @Route("/all/experience", name="app_all_experiences")
  80.      */
  81.     public function allExperiences(): Response
  82.     {
  83.         $experiences $this->manager->getRepository(Experience::class)->findAll();
  84.         // Verifier que la variable a bien recu les données cherchés dans la BDD
  85.         return $this->render('experience/allExperiences.html.twig', [
  86.             // Matérialise l'affichage du formulaire
  87.             'experiences' => $experiences,
  88.         ]);
  89.     }
  90.     /**
  91.      * @Route("/all/experienceVue", name="app_all_experiences_Vue")
  92.      */
  93.     public function allExperiencesVue(): Response
  94.     {
  95.         $experiences $this->manager->getRepository(Experience::class)->findby(array(), array('date_debut' => 'DESC'));
  96.         //$experiencess = $this->manager->getRepository(Experience::class)->findBy(['datedebut']);
  97.         // Verifier que la variable a bien recu les données cherchés dans la BDD
  98.         return $this->render('experience/allExperiencesVue.html.twig', [
  99.             // Matérialise l'affichage du formulaire
  100.             'experiences' => $experiences,
  101.             //'experiencess' => $experiencess,
  102.         ]);
  103.     }
  104. }