Outils pour utilisateurs

Outils du site


symfony_4:fonctionnement:les_controleurs_preparation_des_donnees

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
symfony_4:fonctionnement:les_controleurs_preparation_des_donnees [2018/10/19 09:49]
julien.guerin [Retours]
symfony_4:fonctionnement:les_controleurs_preparation_des_donnees [2019/12/08 08:41] (Version actuelle)
Ligne 26: Ligne 26:
   * index (listing, page d'accueil, etc.)   * index (listing, page d'accueil, etc.)
   * add   * add
-  * edit+  * update
   * delete   * delete
  
Ligne 117: Ligne 117:
     public function edit(Request $request, SWFile $SWFile){ ... }     public function edit(Request $request, SWFile $SWFile){ ... }
 </code> </code>
 +
  
 ---- ----
 +
  
 ==== Retours ==== ==== Retours ====
Ligne 126: Ligne 128:
   * Réponse en JSON (pour l'ajax, par exemple)   * Réponse en JSON (pour l'ajax, par exemple)
   * Re-direction vers une route spécifique   * Re-direction vers une route spécifique
-  * Un code HTML ( 200, 404, 500 )+ 
 +----
  
 === Affichage d'une vue (TWIG) === === Affichage d'une vue (TWIG) ===
Ligne 152: Ligne 155:
     }     }
 </code> </code>
 +
 +----
  
 === Envoi en AJAX === === Envoi en AJAX ===
 +
 +Pour retourner un JSON, on créer un tableau et on retourne un objet JsonResponse.
 +
 <code PHP> <code PHP>
 +use Symfony\Component\HttpFoundation\JsonResponse;
 +use Symfony\Component\HttpFoundation\Response;
 +
 +  ...
 +  
 +  $modalBarge = $this->renderView('ajax:modalXXX.html.twig', array(
 +            'tabBargesToday' => $tabBargesToday,
 +            'tabBarges' => $tabBarges
 +        ));
 +        
   $json_array = array(   $json_array = array(
-            'error' => $error+            'error' => $error
 +            'modal' => $modalBarge
         );         );
  
Ligne 162: Ligne 181:
   return $response->setData($json_array);   return $response->setData($json_array);
 </code> </code>
 +
 +----
  
 === Redirection vers une route === === Redirection vers une route ===
  
-=== Code HTML ===+Pour rediriger vers une méthode précise, on redirige vers la route associée à celle-ci via la méthode : 
 +<code PHP> 
 +$this->redirectToRoute('swfile'); 
 +</code>
  
- 
----- 
-===== Exemple ===== 
 <code PHP> <code PHP>
-<?php + /**
- +
-namespace App\Controller; +
- +
-use App\Entity\SWFile; +
-use App\Form\SWFileType; +
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; +
-use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; +
-use Symfony\Bundle\FrameworkBundle\Controller\Controller; +
-use Symfony\Component\HttpFoundation\Response; +
-use Symfony\Component\HttpFoundation\Request; +
- +
-class SWFileController extends Controller +
-+
-    /** +
-     * Display SWFile list in tab +
-     * +
-     * @Route("/SWFile/", name="swfile"+
-     *  +
-     * @IsGranted("ROLE_ADMIN", statusCode=404, message="Accès refusé !") +
-     *  +
-     * @param Request $request +
-     * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response +
-     */ +
-    public function index(Request $request) +
-    { +
-        $manager = $this->getDoctrine()->getManager(); +
- +
-        $tabSWFile = $manager->getRepository(SWFile::class)->findAll(); +
- +
-        return $this->render('SWFile/listSW.html.twig', array( +
-            'tabSWFile' => $tabSWFile, +
-        )); +
-    } +
- +
-    /**+
      * Add a SWFile      * Add a SWFile
      *      *
      * @Route("/ServiceWorker/add", name="swfile_add")      * @Route("/ServiceWorker/add", name="swfile_add")
      *      *
-     * @IsGranted("ROLE_ADMIN", statusCode=404, message="Accès refusé !")+     * @IsGranted("ROLE_ADMIN", statusCode=404, message="Accès réservé aux administrateurs !")
      *      *
      * @param Request $request      * @param Request $request
Ligne 224: Ligne 210:
  
         if ($form->isSubmitted() && $form->isValid()) {         if ($form->isSubmitted() && $form->isValid()) {
-            // $form->getData() holds the submitted values +             
-            // but, the original `$task` variable has also been updated +            ... 
-            $SWFile = $form->getData(); +             
- +            //redirection vers la liste des swfiles après l'ajout
-            //MAJ des champs non disponibles sur le formulaire +
-            $SWFile->setCreationDate(new \DateTime("now") ); +
-            $SWFile->setEditDate(new \DateTime("now") ); +
- +
-            //Application des modifs en BDD +
-            $manager = $this->getDoctrine()->getManager(); +
-            $manager->persist($SWFile); +
-            $manager->flush(); +
- +
-            return $this->redirectToRoute('swfile_add'); +
-        } +
- +
-        return $this->render('SWFile/newSW.html.twig', array( +
-            'form' => $form->createView(), +
-        )); +
-    } +
- +
-    /** +
-     * Edit a SWFile +
-     * +
-     * @Route("/SWFile/edit/{sw}", name="swfile_edit", requirements={"sw"="\d+"}) +
-     * +
-     * @IsGranted("ROLE_ADMIN", statusCode=404, message="Accès refusé !") +
-     * +
-     * @param Request $request +
-     * @param SWFile $SWFile +
-     * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response +
-     */ +
-    public function edit(Request $request, SWFile $SWFile) +
-    { +
-        $form = $this->createForm(SWFileType::class, $SWFile); +
- +
-        $form->handleRequest($request); +
- +
-        if ($form->isSubmitted() && $form->isValid()) { +
-            // $form->getData() holds the submitted values +
-            // but, the original `$task` variable has also been updated +
-            $SWFile = $form->getData(); +
- +
-            //MAJ des champs non disponibles sur le formulaire +
-            $SWFile->setCreationDate(new \DateTime("now") ); +
-            $SWFile->setEditDate(new \DateTime("now") ); +
- +
-            //Application des modifs en BDD +
-            $manager = $this->getDoctrine()->getManager(); +
-            $manager->persist($SWFile); +
-            $manager->flush(); +
             return $this->redirectToRoute('swfile');             return $this->redirectToRoute('swfile');
         }         }
- +         
-        return $this->render('SWFile/newSW.html.twig', array( +        ... 
-            'form' => $form->createView(), +        
-        ));+
     }     }
 +</code>
  
-    /** +----
-     * Delete a SWFile (not the file, just the database slot +
-     * +
-     * @Route("/SWFile/delete/{sw}", name="swfile_delete", requirements={"sw"="\d+"}) +
-     * +
-     * @IsGranted("ROLE_ADMIN", statusCode=404, message="Accès refusé !") +
-     * +
-     * @param Request $request +
-     * @param SWFile $SWFile +
-     * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response +
-     */ +
-    public function delete(Request $request, SWFile $SWFile) +
-    { +
-        $manager = $this->getDoctrine()->getManager();+
  
-        //retrait du SWFile 
-        $manager->remove($SWFile); 
-        $manager->flush(); 
- 
-        return $this->redirectToRoute('swfile'); 
-    } 
- 
-} 
-</code> 
symfony_4/fonctionnement/les_controleurs_preparation_des_donnees.1539935355.txt.gz · Dernière modification: 2019/12/08 08:43 (modification externe)