Подтвердить что ты не робот

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: аргумент 1, переданный Symfony\Component\Form\FormRenderer:: searchAndRenderBlock() должен быть экземпляром Symfony\Component\Form\FormView, instance формы Symfony\Component\Form\Form, вызываемой в...

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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