Bonjour à tous,
j'ai un soucis que je n'arrive pas a résoudre avec les template de formulaire.
J'ai un formulaire qui contient un collectionType. Pour ce champs j'ai fais un template pour disposer mes champs comme je le souhaite.
Lorsque j'appelle le controlleur add, pas de soucis mon template est bien appelé, tout est ok.
Cependant lorsque je passe par le controlleur edit, mon template n'est pas appelé, le formulaire est affiché mais pas avec la mise en forme de mon template.
je n'arrive pas à comprendre pourquoi ?
Mes controlleurs:
/**
* @Route("/paris/add", name="paris_add")
* @param Request $request
*/
public function add(Request $request)
{
$em = $this->getDoctrine()->getManager();
$paris = new paris();
$form = $this->createForm(ParisType::class, $paris);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em->persist($paris);
$em->flush();
return $this->redirectToRoute('paris');
}
return $this->render("paris/add.html.twig", [
'form' => $form->createView()
]);
}
/**
* @Route("/paris/{id}", name="paris_edit", requirements={"id":"\d+"})
* @param Paris $paris
* @param Request $request
*/
public function edit(Request $request, Paris $paris)
{
$em = $this->getDoctrine()->getManager();
$form = $this->createForm(ParisType::class, $paris);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em->flush();
}
return $this->render("paris/add.html.twig", [
// "paris" => $paris,
"form" => $form->createView(),
]);
}
}
Ma vue:
{% extends 'base.html.twig' %}
{% form_theme form 'rencontre/_form.html.twig' %}
{% block body %}
<button type='button' id='btn-add' class='add_sport_link btn btn-primary'>Ajouter paris</button>
{{ form_start(form) }}
<div class="paris">
<div class="row">
<div class="col-md-4">
{{ form_row(form.mise) }}
</div>
<div class="col-md-4">
{{ form_row(form.type) }}
</div>
<div class="col-md-4">
{{ form_row(form.win) }}
</div>
<div class="col-md-4">
{{ form_row(form.site) }}
</div>
</div>
<div class="col-md-4 matchs">
{% if form.rencontres|length > 0 %}
{% for index in 0..form.rencontres|length - 1 %}
{{ dump(index) }}
{{ form_row(form.rencontres[index]) }}
{% endfor %}
{% else %}
{{ form_row(form.rencontres) }}
{% endif %}
</div>
</div>
{{ form_end(form) }}
{% endblock %}
Mon template
{% block _paris_rencontres_row %}
<div class="sports" id="renc-xx" style="background-color: rgba(182, 184, 185, 0.200);">
<div class="row">
<div class="col-md-3">
{{ form_row(form.vars.prototype.playedAt) }}
</div>
<div class="col-md-3">
{{ form_row(form.vars.prototype.sport) }}
</div>
</div>
<div class="row">
<div class="col-md-3">
{{ form_row(form.vars.prototype.player_1) }}
</div>
<div class="col-md-3">
{{ form_row(form.vars.prototype.player_2) }}
</div>
<div class="col-md-2">
{{ form_row(form.vars.prototype.cote) }}
</div>
<div class="col-md-2">
{{ form_row(form.vars.prototype.resultat) }}
</div>
</div>
<hr>
</div>
{% endblock %}
Merci de votre aide !