создать простую форму с несколькими строками:несколько строк в форме для того же объекта в Symfony2
Контроллер:
public function indexAction()
{
$repository = $this->getDoctrine()->getRepository('MyBundle:Product');
$products = $repository->findAll();
foreach ($products as $product) {
$forms[] = $this->createForm(new ProductType, $product)->createView();
}
return $this->render('MBundle:Default:index.html.twig', array('form' => $forms);
}
я вынести это в прутиком:
<form action="{{ path('_submit') }}" method="post">
{% for key, formData in forms %}
{{ form_row(formData.id) }}
{{ form_row(formData.name) }}
{{ form_row(formData.nameEnglish) }}
<br clear="all" />
{% endfor %}
</form>
Когда i submit form, каждый из моих полей ввода имеет одинаковые атрибуты имени, и я получаю только последний. Как захватить все строки и проверить их в моем контроллере submitAction()? Каждый вход должен иметь уникальное имя, не так ли? ... и, возможно, мне нужно установить каким-то образом name = "something [name] []", но как это сделать?
Взгляните на группу полей коллекций: http://symfony.com/doc/current/reference/forms/types/collection.html и http://symfony.com/doc/current/cookbook/form/ form_collections.html. В итоге вы передадите $ products в свою форму. – Cerad
Можете ли вы привести мне пример. Я не понимаю, как в этом случае коллекция будет работать. –
Сделайте себе форму ProductType и вставьте ProductType в коллекцию. – Cerad