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

 PHP Discussion :

symfony fomulaire imbriqué [1.x]


Sujet :

PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut symfony fomulaire imbriqué
    bonjour,
    je travaille avec un formulaire imbriqué mais je veux faire une condition sur unset si je suis dans le module racine je cache certains champ mais si je suis dans module imbriqué je cache d'autre champ ??
    merci

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je ne vois pas trop comment l'objet form peut savoir s'il est root ou enfant.

    Je pense que la meilleur solution serait de créer deux objets dérivé de ton form, un pour être utilisé dans la racine et un pour les embed. Tu auras alors la structure objet suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BaseMonformForm -> MonformForm -|->RootMonformForm
                                    |->EmbedMonformForm
    La méthode configure des objets RootMonformForm et EmbedMonformForm ressemblera alors à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public fonction configure()
    {
      parent::configure(); // IMPORTANT vu qu'elle est définie dans MonformForm
      unset('field1', 'field2', 'field3');
    }
    Ce qui permet accessoirement de faire plus de traitement que de simple unset.

  3. #3
    Membre éclairé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2011
    Messages
    444
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2011
    Messages : 444
    Par défaut
    merci, voici une solution qui m'a bien sérvie : passer un paramettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class KkForm extends BaseKkForm
    {
      public function configure()
      {
          if($this->getOption('from_parent')){
         unset( $this["hh"], $this["nom"]);
        }else
         unset($this["hh"]);
     
      }}
    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
    25
    class ClientForm extends BaseClientForm
    {
      public function configure(){
           unset(
           $this["id"]
                  );
     
     
             if($this->getObject()->isNew()) {
             $this->embedForm('gg', new KkForm(null,array('from_parent'=>true)));
             }
     
     
             if(!$this->getObject()->isNew()) {
             $a = new KkForm();
             foreach ($this->object['Kk'] as $index=>$Kk) {
     
              $this->embedForm('gg',new KkForm($Kk,array('from_parent'=>true)));
             }
             $a->embedForm('gg',$a);
     
             }
     
    }
    }

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    C'est aussi une solution.

    Personnellement, d'un niveau utilisation objet, je préfère l'utilisation de l'héritage d'objet.

    Ceci est plus clair, chaque objet fait ce pour quoi il est conçu. Pas de confusion possible.

    La solution de paramètres passé est élégante, mais peut, à terme, porter à confusion (dans une future release d'ici un an, par un autre développeur).

    La notion d'objet enfants est immédiatement visible, elle va permettre de générer un code plus sur, plus simple à maintenir.

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

Discussions similaires

  1. [2.x] [Symfony 2] Upload image dans formulaire imbriqué
    Par pixel016 dans le forum Symfony
    Réponses: 7
    Dernier message: 09/01/2015, 16h23
  2. [2.x] Symfony 2 : formulaires de collections imbriquées
    Par ben.IT dans le forum Symfony
    Réponses: 4
    Dernier message: 17/12/2014, 11h50
  3. [2.x] [Symfony 2] Formulaire imbriqué + Check & combobox
    Par REF26 dans le forum Symfony
    Réponses: 1
    Dernier message: 19/12/2013, 13h56
  4. Réponses: 2
    Dernier message: 24/03/2011, 18h10
  5. [1.x] imbriquer dynamiquement des forms sur symfony
    Par wind_of_o dans le forum Symfony
    Réponses: 5
    Dernier message: 22/03/2011, 15h19

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