Symfony2: вызов form_widget в исключении twig throws «Catchable fatal error … должен быть экземпляром Symfony \ Component \ Form \ FormView»

Когда я создаю форму внутри моего действия контроллера следующим образом:

$form = $this->createFormBuilder() ->add('field_name') ->getForm(); return array( 'form' => $form ); 

… и я пытаюсь отобразить эту форму в шаблоне ветки:

  <form action="{{ path('...') }}" method="post"> {{ form_widget(form.field_name) }} </form> 

… вызов form_widget вызывает следующее исключение / ошибку:

Исключение было сделано во время рендеринга шаблона («Catchable Fatal Error: Argument 1, переданный Symfony \ Component \ Form \ FormRenderer :: searchAndRenderBlock () должен быть экземпляром Symfony \ Component \ Form \ FormView, экземпляр Symfony \ Компонент \ Форма \ Форма задана, вызвана …

Как я могу решить эту проблему?

Вы должны передать экземпляр Symfony\Component\Form\FormView вместо Symfony\Component\Form\Form к вашему представлению.

Исправьте это, используя …

 ... ->getForm()->createView(); 

FormBuilder::getForm создает объект FormForm::createView затем создает объект FormView .

В вашем контроллере:

 return array( 'form' => $form->createView() ); 

Но если вы хотите отправить его в представление, это стандартный пример:

 return $this->render('@App/public/index.html.twig', array( 'form'=>$form->createView() ));