Bonjour,

Je m'initie à Symfony2 et je me retrouve un peu bloqué au niveau de l'externalisation des formulaires. J'essaie de réaliser une application de gestion de films, tout ce qu'il y a de plus banal donc.

Je souhaite donc créer un formulaire pour ajouter des catégories. Lorsque je fais ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
    public function addAction()
    {
        $cat = new Category();
 
        $formBuilder = $this->createFormBuilder($cat);
        $formBuilder->add('title', 'text');
 
        $form = $formBuilder->getForm();
 
        return $this->render('CedevMediamanagerBundle:Category:edit.html.twig', array
                (
                    'form' => $form->createView()
                )
        );
    }
?>
Pas de problème le formulaire s'affiche correctement.

En revanche si je fais cela:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?php
$cat = new Category();
$form = $this->createForm($cat, new CategoryType());
 
return $this->render('CedevMediamanagerBundle:Category:edit.html.twig', array
(
                    'form' => $form->createView()
)
);
?>
Je récupère une exception: "Expected argument of type "string, Symfony\Component\Form\ResolvedFormTypeInterface or Symfony\Component\Form\FormTypeInterface", "Cedev\MediamanagerBundle\Entity\Category given".

Au cas où voici le code CategoryType généré par la console:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
class CategoryType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title', 'text')
        ;
    }
 
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Cedev\MediamanagerBundle\Entity\Category'
        ));
    }
 
    public function getName()
    {
        return 'cedev_mediamanagerbundle_categorytype';
    }
}
?>
Pouvez-vous me dire où ça coince ? Merci d'avance.