php - How can I customize form fields IDs in Symfony 4?
one text
I'm building a web page in Symfony that is built with multiple instances of the same form, but with different POST urls. I want to intercept the submit with javascript, and do a simple AJAX POST.
The structure of this page is this:
<h1>Title</h1>
{% for document in documents %}
<div id="form_{{ document.id }}">
{{ form(document.form) }}
<input type="submit">Submit button</input>
</div>
{% endfor %}
<hr />
If I have 4 documents in the documents
array, 4 forms will be rendered. The problem is that all the documents fields will have the same ID: there will be 4 document_csrf
, 4 document_title
title, and so, because all documents
are views of the DocumentType
form.
What I want is to add something to the generation of the form, so each form field is rendered with unique fieldnames: document_csrf1
, document_title_1
, document_csrf2
, document_title_2
, etc.
I've been looking around StackOverflow and the Symfony Documentation, but I can't find anything. I can pass an ['attr'] => ['id' => $id]]
then calling the createForm
function, but this ID is only used for the <form>
tag, not the other fields...
Is there any way to automatically add an ID to the form, or should I render the form adding the id to each element ({{ form_widget(form.name, {'attr': {'id': 'document_name' ~ document.id}}) }}
)?
Thank you for your help!
Source