IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Formulaire] ManyToMany et liste


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [Formulaire] ManyToMany et liste
    Bonjour
    Je vous explique
    J'ai un formulaire d'inscription pour des étudiants et à son inscription, un étudiant peut ajouter les langues qu'il connait en les choisissant dans une liste.
    Dans mon formulaire, j'ai un champ langue avec une liste des langues (ajoutées en bdd par l'admin) et un bouton "ajouter langue" pour ajouter un nouveau champ pour une seconde langue par exemple.

    Voici les codes

    Entité Etudiant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /**
     * @ORM\ManyToMany(targetEntity = "Gco\AdminBundle\Entity\Langue" )
     * @ORM\JoinColumn(nullable=false)
     */
    private $langues;
    Dans le formtype de l'étudiant j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ->add('langues', 'collection', array('type' => new FormLangue(),
                    'allow_add'    => true,
                    'allow_delete' => true))
    Et voici FormLangue.php
    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
    class FormLangue extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('langue','entity', array(
                    'class' => 'GcoAdminBundle:Langue',
                    'property' => 'nom'))
     
            ;
        }
     
        public function getName()
        {
            return 'langue';
        }
    }
    Je me suis inspiré d'un tutoriel pour le jquery et le formulaire trouvé sur un autre site.

    A l'exécution, j'ai bien le bouton et la liste me permettant de choisir la langue. Mais lorsque je valide, j'ai cette erreur :

    Warning: spl_object_hash() expects parameter 1 to be object, array given in vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php line 1358

    at ErrorHandler ->handle ('2', 'spl_object_hash() expects parameter 1 to be object, array given', '\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php', '1358', array('entity' => array('langue' => object(Langue)), 'assume' => '2'))
    Je ne comprends pas mon erreur, pourriez-vous m'aider svp ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    Je crois qu'il faut que tu persites en cascade



    @ORM\ManyToMany(targetEntity = "Gco\AdminBundle\Entity\Langue" , cascade={"persist"})

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,

    il faut définir l'option data_class de ton FormLangue:
    http://symfony.com/fr/doc/current/bo...rms-data-class

    Ton formulaire n'est pas vraiment cohérent avec ta modélisation:
    Si ton entité étudiant est en ManyToMany avec Langue, il suffit d'ajouter un champ "entity" en multiple sur EtudiantForm.
    utiliser un champ de type collection serait légitime si tu avais une entité intermédiaire entre Etudiant et Langue (par exemple une Entité CompetenceLangue avec un attribut niveau)

    Je ne suis pas non plus convaincu qu'il faille une entité Langue, aprés tout le code de la langue peut se suffire en lui-même et il y a un champ spécial pour afficher les langues:
    http://symfony.com/fr/doc/current/re.../language.html

Discussions similaires

  1. formulaire: champ texte + liste deroulante
    Par mat21 dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 10h01
  2. [Formulaire] zone de liste qui en modifie d'autres
    Par dutrannoy dans le forum Access
    Réponses: 4
    Dernier message: 09/10/2005, 20h19
  3. [Formulaire] Zone de liste multicolore
    Par suspiria dans le forum Access
    Réponses: 2
    Dernier message: 05/10/2005, 10h50
  4. [HTML] Formulaire/menu et liste de choix
    Par TwoChipies dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/11/2004, 16h32
  5. Pb avec le formulaire en type List
    Par LoulouFifi dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/02/2004, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo