Outils pour utilisateurs

Outils du site


form

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édentesRévision précédente
Prochaine révision
Révision précédente
form [2022/11/14 09:47] – [Au niveau des entités] adminform [2022/11/14 10:53] (Version actuelle) – [Ajout de EtudiantModifierType] admin
Ligne 58: Ligne 58:
             ->add('nom', TextType::class)             ->add('nom', TextType::class)
             ->add('prenom', TextType::class)             ->add('prenom', TextType::class)
-            ->add('dateNaiss', DateTimeType::class, array('input' => 'datetime', +            ->add('dateNaiss', DateType::class, [ 
-                                                          'widget' => 'single_text', +                'widget' => 'single_text', 
-                                                          'format' => 'dd/MM/yyyy',  //L'option 'format' doit être supprimée si le format HTML5 des dates est activée (message d'erreur) +                'format' => 'yyyy-MM-dd', 
-                                                          'required' => true, +                 ])
-                                                          'label' =>'date de naissance', +
-                                                          'placeholder' => 'jj/mm/aaaa'))+
             ->add('ville', TextType::class)             ->add('ville', TextType::class)
             ->add('numRue', TextType::class)             ->add('numRue', TextType::class)
Ligne 95: Ligne 93:
 La soumission des données est effectuée dans le contrôleur. La soumission des données est effectuée dans le contrôleur.
 <code php> <code php>
-public function ajouterEtudiant(Request $request){+public function ajouterEtudiant(ManagerRegistry $doctrine,Request $request){
         $etudiant = new etudiant();         $etudiant = new etudiant();
  $form = $this->createForm(EtudiantType::class, $etudiant);  $form = $this->createForm(EtudiantType::class, $etudiant);
Ligne 104: Ligne 102:
             $etudiant = $form->getData();             $etudiant = $form->getData();
  
-            $entityManager = $this->getDoctrine()->getManager();+            $entityManager = $doctrine->getManager();
             $entityManager->persist($etudiant);             $entityManager->persist($etudiant);
             $entityManager->flush();             $entityManager->flush();
Ligne 118: Ligne 116:
  
 La fonction prend maintenant en paramètre la requête http (composant à ajouter dans les use). La fonction prend maintenant en paramètre la requête http (composant à ajouter dans les use).
 +Ne pas oublier d'importer EtudiantType
 <code php> <code php>
 use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
 +use App\Form\EtudiantType
 </code> </code>
  
Ligne 134: Ligne 134:
 ==== Au niveau des entités ==== ==== Au niveau des entités ====
 Symfony dispose d'un composant, le Validator, permettant d'ajouter des contraintes dans les entités, au niveau des annotations de chaque propriété. Symfony dispose d'un composant, le Validator, permettant d'ajouter des contraintes dans les entités, au niveau des annotations de chaque propriété.
 +Nous allons ajouter des contraintes de validation au niveau de l'__entité Etudiant__.
 Il faut d'abord ajouter ce composant :  Il faut d'abord ajouter ce composant : 
 <code lscript> <code lscript>
Ligne 140: Ligne 141:
  
 La validator propose plusieurs propriétés selon les composants utilisés.  La validator propose plusieurs propriétés selon les composants utilisés. 
-Par exemple pour un champ de type string :+Par exemplepour ajouter des contraintes de saisie du nombre de caractères sur le nom de l'étudiant, il faut ajouter des annotations au dessus de la propriété nom de l'entité Etudiant.
 <code php> <code php>
      ....annotations précédentes...      ....annotations précédentes...
Ligne 213: Ligne 214:
   * Sinon ré-affiche le formulaire    * Sinon ré-affiche le formulaire 
 <code php> <code php>
-public function modifierEtudiant($id, Request $request){+public function modifierEtudiant(ManagerRegistry $doctrine, $id, Request $request){
  
     //récupération de l'étudiant dont l'id est passé en paramètre     //récupération de l'étudiant dont l'id est passé en paramètre
-    $etudiant = $this->getDoctrine() +    $etudiant = $doctrine->getRepository(Etudiant::class)->find($id);
-        ->getRepository(Etudiant::class) +
-        ->find($id);+
  
  if (!$etudiant) {  if (!$etudiant) {
Ligne 231: Ligne 230:
  
                  $etudiant = $form->getData();                  $etudiant = $form->getData();
-                 $entityManager = $this->getDoctrine()->getManager();+                 $entityManager = $doctrine()->getManager();
                  $entityManager->persist($etudiant);                  $entityManager->persist($etudiant);
                  $entityManager->flush();                  $entityManager->flush();
form.1668419278.txt.gz · Dernière modification : 2022/11/14 09:47 de admin