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 :

ajout et validation d'une extra option a un champ entity d'un formulaire [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2010
    Messages : 93
    Par défaut ajout et validation d'une extra option a un champ entity d'un formulaire
    Bonjour
    je suis nouveau sur symfony2 et je veux faire comme suite :
    j'ai une entity reservation qui a un champ chambre qui reference une liste d'objets chambre (relation manyToMany), je veux que l'utilisateur choisi les chambres qu'il veux réserver mais s'il veux il peut choisir l'option "En exclusivité" pour dire tous les chambres.
    j'ai ajouter l'option "En exclusivité" dans le champ de form chambre avec la methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public function finishView(FormView $view, FormInterface $form, array $options) {
            $new_choice = new ChoiceView(array(), 0, "En exclusivité");
            $view->children["chambres"]->vars["choices"][] = $new_choice;
        }
    maintenant tous vas bien sauf que $form->isValid() est toujours false ce qui est logique parceque l'option que j'ai ajouter n'est pas un objet chambre.
    j'ai voulu changer les données post soumises mais je sais pas comment ?
    je voudrai savoir comment faire pour valider ce champ est l'enregistrer dans la base ?

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    tu devrais plutot ajouter cette option dans la méthode buildForm()de ton formType
    Symfony2 vérifie que le choix soumis fasse bien parti des choix proposés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('chambres', 'choice', [
                                            'choices' => $monTableauDeChoix
             ]);
     
        }

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2010
    Messages : 93
    Par défaut
    oui mais comme ça le form ne respectera pas le shema de la base de données et ne va pas enregistrer l'objet chambre dans sa table !

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    t'as pas obligé de lié ton formulaire a un objet de la base de données.
    Tu peux soit passé via un objet php tout simple, soit tu peux mettre l'option mapped a false pour indiquer a Symfony que tu ne veux pas que ce champ soit mappé a l'entité doctrine

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mars 2010
    Messages : 93
    Par défaut
    merci bouceaup pour la reponse.
    j'ai esseyé ton idée mais il y a un problème :
    dans le controlleur $form->getData() me retourne bien un objet reservation sauf que l'attribu chambre de cet objet contien null. là je doit tester sur les données soumis par le form et faire $reservation->setChambre($tableauDeChambres) ou $reservation->setChambre($tableauDeTousLesChambres) selon le choix de l'utilisateur et après persister l'objet
    mais comment acceder au données $_post dans le controller ?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    de mémoire (nomduformulaire = getName de ton FormType):
    $request->get("nomduformulaire") ou $request->request->get("nomduformulaire")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/01/2010, 10h51
  2. ajouter une nouvelle option à la commande wget
    Par GoldenEyes dans le forum Linux
    Réponses: 2
    Dernier message: 01/09/2008, 15h40
  3. Réponses: 14
    Dernier message: 28/08/2003, 23h29
  4. [VB6] Ajouter un commentaire à une fonction d'une DLL
    Par Ace303 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/06/2003, 08h14
  5. Réponses: 12
    Dernier message: 26/02/2003, 08h14

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