[Form] Externalisation des formulaires
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:
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:
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:
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.