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 :

[2.8] constructeur formulaire [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier Avatar de Fahelis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2014
    Messages : 77
    Points : 87
    Points
    87
    Par défaut [2.8] constructeur formulaire
    Bonjour la communauté
    Je viens vers vous pour un problème des plus stupides.
    Je suis passé sur la version 2.8 de Symfony pour commencer à voir les choses dépréciées.
    Il y en a pas mal concernant les formulaires et une en particulier qui me bloque : Appeler un formulaire avec un argument passé dans le constructeur.

    Avant c'était très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    createForm(new form(argument), ...)
    Mais ceci est déprécié et désormais il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    createForm(form::class, ...)
    Et du coup je suis en train de tourner en rond à chercher comme lui passer mon argument dans le constructeur... En plus je suis sur que c'est tout simple mais je bloque

    Si une âme charitable veut bien avoir pitié de moi je lui en serais très reconnaissant

    Merci de m'avoir lu.
    Pensez au bouton quand votre problème est réglé afin de ne pas faire perdre leur temps aux gens qui essayent gentiment d'aider les autres

  2. #2
    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
    par les options ? (je n'ai pas encore piocher la dessus je suis à la version 2.7)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $options [id] = 3;
     
    createForm(form::class, $options, ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class TaskType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {

  3. #3
    Membre régulier Avatar de Fahelis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2014
    Messages : 77
    Points : 87
    Points
    87
    Par défaut
    J'ai voulu faire ça, mais les options correspondent aux options du formulaire (action, method, etc...), à moins qu'on puisse en ajouter des personnelles mais dans ce cas j'ignore comment.

    J'avais cru tenir une solution en passant par le second argument (entre le type et les options)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    createForm(formType::class, $entity, $options)
    en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    createForm(formType::class, array('argu' => $argument, 'ent' => $entity), $options)
    , et techniquement ça passe, mais ça m'oblige a casser le lien entre le formulaire et mon entité, c'est qui ne m'arrange pas vraiment du coup
    Pensez au bouton quand votre problème est réglé afin de ne pas faire perdre leur temps aux gens qui essayent gentiment d'aider les autres

  4. #4
    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,


    Tu peux autoriser toutes les options que tu veux via la méthode "configureOptions" anciennement nommé "setDefaultOptions".

    Si tu veux garder ton constructeur intact, il faut définir ton FormType en tant que service avec le tag "form.type"
    cf http://symfony.com/doc/current/refer...html#form-type

  5. #5
    Membre régulier Avatar de Fahelis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2014
    Messages : 77
    Points : 87
    Points
    87
    Par défaut
    Bon ben je me disais bien que c'était trois fois rien
    Je ne souhaitais pas forcément garder mon constructeur, c'est juste comme ça que je faisais avant, mais passer par les options grâce à "configureOptions" me va très bien
    C'est 100% fonctionnel, merci beaucoup
    Pensez au bouton quand votre problème est réglé afin de ne pas faire perdre leur temps aux gens qui essayent gentiment d'aider les autres

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/03/2015, 09h51
  2. [Débutant] Accès aux données formulaires de la vue à l'appel du constructeur du Modèle
    Par franck406 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 14/08/2013, 15h41
  3. Réponses: 4
    Dernier message: 19/07/2011, 14h34
  4. Réponses: 6
    Dernier message: 26/01/2007, 09h34
  5. Réponses: 2
    Dernier message: 09/05/2006, 12h30

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