J'ai un formulaire qui se met à jour une fois qu'on clique sur le bouton valider, il charge un tableau de données appelé $order :
$rateApproval = $this->getRateApprovalManager();
$orders = $rateApproval->listOrders($this->getUser()->getUsername());
$form = $this->createForm('xmd_rate_collection', $orders);
if ($this->getRequest()->getMethod() == 'POST') {
$form->bindRequest($this->getRequest());
if ($form->isValid()) {
$data = $form->getClientData();
$orders = $rateApproval->updateOrders($data);
}
}
return array(
'form' => $form->createView()
);
Le souci c'est que 'form' => $form->createView() charge les données avant la mise à jour, et non après.Du coup pour que ça marche il faut que je fasse :
$rateApproval = $this->getRateApprovalManager();
$orders = $rateApproval->listOrders($this->getUser()->getUsername());
$form = $this->createForm('xmd_rate_collection', $orders);
if ($this->getRequest()->getMethod() == 'POST') {
$form->bindRequest($this->getRequest());
if ($form->isValid()) {
$data = $form->getClientData();
$orders = $rateApproval->updateOrders($data);
$form = $this->createForm('xmd_rate_collection', $orders);
}
}
return array(
'form' => $form->createView()
);
Ce qui n'est pas super propre ...Voici le twig correspondant :
Quelqu'un aurait une idée ? Merci{% block xmd_rate_collection_row %}
<div {{ block('widget_container_attributes') }}>
{% form_theme form _self %}
{% if form[0].cnu_idn is defined %}
<div id="list-items-0" class="list-items">
<div id="list-items" class="list-items">
<table>
<thead>
<th></th>
<th>
{% if form[0].cnu_idn is defined %}
{{ form[0].cnu_idn.get('label') }}
{% endif %}
</th>
<th>
{% if form[0].ref is defined %}
{{ form[0].ref.get('label') }}
{% endif %}
</th>
<th>
{% if form[0].mtr is defined %}
{{ form[0].mtr.get('label') }}
{% endif %}
</th>
<th>
{% if form[0].obspag is defined %}
{{ form[0].obspag.get('label') }}
{% endif %}
</th>
</thead>
{{ form_errors(form) }}
{{ form_widget(form._token) }}
{% for child in form %}
<tr>
<td>
{% if child.validrate is defined %}
{{ form_widget(child.validrate) }}
{{ form_widget(child.thmann_idc) }}
{% endif %}
</td>
<td>
{% if child.cnu_idn is defined %}
{{ child.cnu_idn.get('value') }}
{{ form_widget(child.cnu_idn) }}
{% endif %}
</td>
<td>
{% if child.ref is defined %}
{{ child.ref.get('value') }}
{{ form_widget(child.ref) }}
{% endif %}
</td>
<td>
{% if child.mtr is defined %}
{{ child.mtr.get('value') }}
{{ form_widget(child.mtr) }}
{% endif %}
{% if child.rsc001 is defined %}
{{ child.rsc001.get('value') }}
{{ form_widget(child.rsc001) }}
{% endif %}
{% if child.rsc002 is defined %}
{{ child.rsc002.get('value') }}
{{ form_widget(child.rsc002) }}
{% endif %}
</td>
<td>
{% if child.obspag is defined %}
{{ child.obspag.get('value') }}
{{ form_widget(child.obspag) }}
{% endif %}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<input class="btn btn-primary" type="submit" />
{% else %}
{# random text here #}
{% endif %}
{% endblock xmd_rate_collection_row %}