2013-07-10 10 views
19

Kiedy utworzyć formularz wewnątrz mojego działania kontrolera jak ten:Symfony2: form_widget rozmowy gałązka rzuca wyjątek "połów fatal error ... musi być instancją Symfony Komponent Form FormView"

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

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

... i staram się uczynić tę formę w szablonie gałązka tak:

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

... The form_widget inwokacja produkuje następujący wyjątek/błąd:

An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\FormRenderer::searchAndRenderBlock() must be an instance of Symfony\Component\Form\FormView, instance of Symfony\Component\Form\Form given, called in ...

Jak mogę rozwiązać ten problem?

+4

Twój przekazując formularz, kiedy należy zdać View – DevZer0

Odpowiedz

47

Musisz przekazać instancję Symfony\Component\Form\FormView zamiast Symfony\Component\Form\Form do widoku.

to naprawić za pomocą ...

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

FormBuilder::getForm buduje Form obiekt ... Form::createView następnie tworzy FormView obiekt.

1

w kontroler:

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

Ale jeśli chcesz, aby wysłać go do poglądu, że jest to standardowy przykład:

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