[6.4][Form Theming] Création de form theme custom ne fonctionne pas
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
Code:
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
]);
}
} |
Model/UserDTOBis:
Code:
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;
} |
templates/welcome_form_user_dto_bis.html.twig
Code:
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 %} |
Mon CSS:
public/css/blog.css
Code:
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;
} |
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:
1 2 3 4 5 6
|
{% block text_label %}
<div class="textegras">
</div>
{% endblock %} |
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.
Comment résoudre cela s'il vous plaît?
Je vous remercie par avance,