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 :

passer un parametre dans la creation d'un formulaire [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut passer un parametre dans la creation d'un formulaire
    Bonjour,

    Je suis en train de faire évoluer mon application de SF 2.3 vers SF 2.8 et j'essaie de corriger tous les warnings liés au "deprecated"
    Il y en a une que j'ai du mal, c'est celle-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Passing type instances to FormBuilder::add(), Form::add() or the FormFactory is deprecated since version 2.8 and will not be supported in 3.0. Use the fully-qualified type class name instead
    Actuellement dans mon formulaire, je lui passais un paramètre et selon ce paramètre, les widgets de mon formulaire étaient différents.
    De plus, sur certain formulaire, je lui passais aussi l'action en paramètre
    En gros ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = $this->createForm(new ObjetFormType($page, $this->generateUrl('maroute', array('id' => $id))), $objet)
    Et dans mon formulaire je fais :
    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
    24
    class ObjetFormType extends AbstractType
    {
        private $page = 0;
        private $urlAction;
     
        public function __construct($page, $url) {
            $this->page = $page;
            $this->urlAction = $url;
        }
     
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            switch($this->page){
                case '0':
                    $builder->add(....)
                    break;
                default:
                    break;
            }
     
            $builder->setMethod('POST')
                ->setAction($this->urlAction);
        }
    }
    Maintenant on doit passer le type d'objet à createForm, du coup ça donne quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = $this->createForm(ObjetFormType::class, $objet)
    Comment je peux faire pour passer des paramètres du coup ?
    Merci de votre aide.
    Jérôme

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut
    Pas d'idées ?
    Jérôme

  3. #3
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    Symfony 3

    la doc officielle devrait t'aider non ?
    http://symfony.com/doc/current/forms.html

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut
    Merci de ta réponse, mais j'avais déjà vu comment passer l'action dans mon formulaire. (sur la doc de SF 2.8 http://symfony.com/doc/current/form/action_method.html)
    Par contre ma question était de trouver comment je peux passer d'autres variables que celles prévues par symfony...
    Dans mon cas, comment passer la variable $page, par exemple.
    Merci
    Jérôme

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 131
    Points : 64
    Points
    64
    Par défaut
    Bonjour je pense que tu dois regarder de plus prés comment est créé createForm et tu trouvera facilement a ta réponse.

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut
    J'ai trouvé ma solution.
    Il suffit de passer en 3e argument dans mon tableau de données les valeurs que que veux (au même endroit que le paramètre 'action')
    Ensuite on récupère le paramètre dans la méthode configureOptions() du formulaire. Il suffit de l'affecter à une variable de la classe et on la retrouve dans la méthode buildForm()
    et voilà !
    Jérôme

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

Discussions similaires

  1. [JSF] passer un parametre dans un popup
    Par maximus001ma dans le forum JSF
    Réponses: 5
    Dernier message: 07/08/2009, 18h16
  2. passer un parametre dans select count
    Par esojrehcir dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/10/2007, 14h12
  3. passer deux parametres dans navigateurl d'une datalist
    Par imanesl dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/04/2007, 10h40
  4. faire passer des parametres dans l'url
    Par Freyja dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 21/08/2006, 15h57

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