Bonjour, j'ai crée un formulaire qui me permet de saisir une annonce pour une maison(MaisonType), vu que dans l'annonce nous avons plusieurs type de maison, alors j'ai imbriqué le fomulaire TypeMaisonType dans MaisonType et sa focntionne bien.
Le souci est que lorsque j'essaye d'utilisé l'option "label" sur les autres champs de mon formulaire, exemple le champ nombrepiece, j'ai cette erreur :
Expected argument of type "string or Symfony\Component\Form\FormTypeInterface", "array" given
Voici le code:
<?php
namespace Exia\PromotionBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class MaisonType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nombrepiece', array( 'label'=> 'Nombre de pièces :'))
->add('annonce', new AnnonceType())
->add('surface')
->add('energie')
->add('description')
->add('typeMaison', 'entity', array('class' => 'ExiaPromotionBundle:TypeMaison',
'property' => 'nom'))
->add('prix')
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Exia\PromotionBundle\Entity\Maison'
));
}
public function getName()
{
return 'exia_promotionbundle_maisontype';
}
}
Salut ! C'est tout simplement parce que tu dois mettre
->add('nombrepiece', 'number', array( 'label'=> 'Nombre de pièces :'))
. Le deuxième argument étant réservé au type de l'input. Si tu pouvais utiliser l'option "code" du forum au lieu de copier/coller ton code ça serait cool :)
Merci pour la réponse, même je l'avais trouvé entre temps. Pour l'affichage de mon code j'y pensera ;)