Bonjour,
Je teste la création de form theme custom dans la même page twig avec le mot clé _self comme on peut le voir dans la doc: Form theming custom sur la même page Twig.
Voilà mon code:
Controller/WelcomeController
Model/UserDTOBis:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 class WelcomeController extends AbstractController { #[Route('/welcome/form-user-dto-bis', name: 'welcome_form_user_dto_bis')] public function welcomeFormUserDtoBis(Request $request): Response { $userBis = new UserDTOBis(); $form = $this->createFormBuilder($userBis) ->add('firstName', TextType::class) ->add('lastName', TextType::class) ->add('age', IntegerType::class) ->add('sportsman', ChoiceType::class, [ 'choices' => [ 'yes' => true, 'no' => false, ] ]) ->add('dateOfBirth', BirthdayType::class) ->add('submit', SubmitType::class, [ 'label' => 'Save' ]) ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { dd($userBis); return $this->redirectToRoute( 'welcome_form_user_dto_bis_redirect', ['profile' => 'Very great sportsman'], Response::HTTP_MOVED_PERMANENTLY ); } return $this->render('welcome/welcome_form_user_dto_bis.html.twig', [ 'form' => $form ]); } }
templates/welcome_form_user_dto_bis.html.twig
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class UserDTOBis { #[Assert\NotBlank()] public string $firstName; #[Assert\NotBlank()] public string $lastName; public int $age; public bool $sportsman; #[Assert\NotBlank()] #[Assert\Type(\DateTimeInterface::class)] public \DateTimeInterface $dateOfBirth; }
Mon CSS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 {% extends 'base.html.twig' %} {% form_theme form _self %} {% block text_label %} <div class="textegras"> </div> {% endblock %} {% block content %} <p>Page du form:</p> <br> <br> {{ form_start(form) }} {{ form_end(form) }} {% endblock %}
public/css/blog.css
L'idée du form theme custom est d'appliquer un thème personnalisé qui est défini directement dans le template. Comme on peut le voir dans le template, mon form theme custom est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 p { color: blue; } .textegras { font-weight: bold; background-color: brown; color: red; } .entiers { background-color: aqua; color: green; }
C'est à dire que tous les labels qui sont de type text dans le form doivent respecter la class CSS textegras. Mais cela ne fonctionne pas. A mon avis, je dois ajouter un élément dans le div <div class="textegras"> mais je ne vois pas quoi mettre étant donné qu'on doit prendre en compte firstName et aussi lastName.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 {% block text_label %} <div class="textegras"> </div> {% endblock %}
Comment résoudre cela s'il vous plaît?
Je vous remercie par avance,
Partager