Как редактировать несколько записей одной Entity в одной форме?
У меня есть entity - Settings (поля var, value)
И мне нужно в одной форме вывести для редактирования сразу 10 записей из Settings.
Как построить форму так, чтобы можно было править 10 записей (var, value) и сохранить по нажатию на 1 кнопку?
Сохранять в цикле - это не правильный подход. Знаю что есть вложенные формы, но не могу найти примера.
Я видел что описано в документации, но там немного другое. Там вложенные формы для связанных Entity.
Я просто не опытен в симфони и не могу сообразить как построить такую форму через builder и как потом сохранить изменения за один раз?
s0lar, вы можете привести пруфы? Я отлично понимаю, что можно вполне себе выстрелить в ногу - но это к вам вопрос, как вы будете делать же.
Вам нужно обойти коллекцию и поменять состояние объектов в БД.
Цикл - удобная конструкция, которая позволит это сделать.
За рамками цикла делаете flush. Все.
Можно конечно просто 10 раз вызвать метод сохранения для соответствующего блока - да, без проблем. И это хорошо, разматывать циклы, если знаешь, сколько точно будет шагов. Но, стоит ли это делать сейчас?
Александр Кузнецов, возможно я не так выразился, по поводу не правильного подхода. Может быть он как раз единственный и верный. До того, как задать вопрос, я конечно же читал документацию и смотрел на эти Embed Forms. Но там примеры со вложенными Entity и я не могу сообразить как это применить в моем случае?
Вот например, мои 10 записей из Settings. Я создаю SettingsType для заполнения 1 записи за 1 раз.
Далее мне нужно создать отдельный CollectionSettingsType для включения в него десяти моих SettingsType?
Как смапить мои 10 объектов внутрь этой CollectionSettingsType?
Задача, вроде бы простая, но вот примеров по ней я не смог нагуглить (
{{ form_start(form) }}
{# render the task's only field: description #}
{{ form_row(form.description) }}
<h3>Tags</h3>
<ul class="tags">
{# iterate over each existing tag and render its only field: name #}
{% for tag in form.tags %}
<li>{{ form_row(tag.name) }}</li>
{% endfor %}
</ul>
{{ form_end(form) }}