Поле пользовательских форм Symfony2

Я очень новичок в Symfony, поэтому вопрос может показаться немного простым, но мне нужна помощь.

Я создал новый пакет.

Я добавил новый маршрут в Me\MyBundle\Resources\config\routing.yml :

 my_homepage: pattern: / defaults: { _controller: MeMyBundle:Default:index } 

Контроллер Bundle выглядит просто так:

 namespace Me\MyBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class DefaultController extends Controller { public function indexAction() { $form = $this->createFormBuilder() ->getForm() ; return $this->render('MeMyBundle::index.html.twig', array( 'form' => $form->createView(), 'param1' => 'some_string_1', 'param2' => 'another string', )); } } 

В шаблоне ветки я могу читать и обрабатывать соответствующие params , как я хочу.

Полное действие происходит в сгенерированной форме, где есть запросы AJAX, перенаправленные на другой контроллер.

То, что я хочу достичь, – создать новое настраиваемое поле формы, которое может повторяться в одной и той же форме несколько раз с разными params .

Например, я бы хотел, чтобы мой indexAction() выглядел так:

  public function indexAction() { $paramsArr_1 = array( 'param1' => 'some_string_1', 'param2' => 'another string', ); $paramsArr_2 = array( 'param1' => 'some_string_2', 'param2' => 'another fine string', ); $form = $this->createFormBuilder() ->add(myCustomField, $paramsArr_1) ->add(myCustomField_2, $paramsArr_2) ->getForm() ; return $this->render('MeMyBundle::index.html.twig', array( 'form' => $form->createView() )); } 

Да, я видел эту статью , но мне это не очень помогло. Я не мог заставить его работать.

Буду признателен за любую оказанную помощь.

Solutions Collecting From Web of "Поле пользовательских форм Symfony2"

Из того, что я знаю, поля формы расширяют базовый класс формы, поэтому ваш «myCustomField» может быть другой формой.

Проверьте это: http://symfony.com/doc/current/reference/forms/types/form.html

Как вы знаете, каждый объект Form привязал к нему объект, поэтому вместо массивов вы можете создать новый объект с установленными на нем значениями, а затем добавить эту форму, сколько раз вы хотите, с объектами, содержащими разные данные.