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 :

Enregistrement multiple formulaire


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Enregistrement multiple formulaire
    Bonjour,

    J'ai beau chercher et je ne trouve pas ma réponse exact.

    Voilà j'ai un formulaire avec un champ "Choice Multiple" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->widgetSchema['destinataire'] = new sfWidgetFormDoctrineChoice(array('expanded' => true, 'multiple' => true, 'model' => $this->getRelatedModelName('SfGuardUser')));
                    $this->validatorSchema['destinataire'] = new sfValidatorDoctrineChoice(array('multiple' => true, 'model' => $this->getRelatedModelName('SfGuardUser')));
    L'utilisateur a donc le choix de choisir une ou plusieurs options, j'aimerais maintenant modifier l'enregistrement dans ma base pour créer un enregistrement spécifiques à chaque option. Car cette option correspond à un ID et mon champ dans la base est configuré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        destinataire:
          type: integer
          unsigned: true
          notnull: true
    En relation avec un id d'une autre table.

    Cordialement

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    Peux tu mettres ton shema.yml (du moins la partie qui concerne ton problème) ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Voici le bout du schema.yml qui correspond à mon module :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    MlMail:
      connection: doctrine
      tableName: ml_mail
      actAs:
        Timestampable: ~
      columns:
        id:
          type: integer
          unsigned: true
          notnull: true
          primary: true
          autoincrement: true
        destinataire:
          type: integer
          unsigned: true
          notnull: true
        expediteur:
          type: integer
          unsigned: true
          notnull: true
        lu :
          type: boolean
          notnull: true
        sujet :
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        contenu :
          type: string()
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        SfGuardUser1:     { class: SfGuardUser, local: destinataire, foreign: id, foreignAlias: MailDestinataire}
        SfGuardUser2:     { class: SfGuardUser, local: expediteur, foreign: id, foreignAlias: MailExpediteur }
    Mon champ me renvoi un tableau et je ne veut pas l'enregistrer en tant que tableau, j'aimerais qu'il me créer un nouvel enregistrement pour chaque option sélectionnée.

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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
    Points : 8 486
    Points
    8 486
    Par défaut
    Tu peux supprimer tout ce qui est fixed: false, la valeur false est la valeur par défaut, cela va alléger le schéma.

    J'écrirais tes relations ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      relations:
        UserDestinataire:
          class: SfGuardUser
          local: destinataire
          foreignAlias: MailDestinataire
        UserExpediteur:
          class: SfGuardUser
          local: expediteur
          foreignAlias: MailExpediteur
    Tu peux virer foreign: id qui est la valeur par défaut.

    Par contre, je ne vois pas comment tu veux stocker le choix multiple de destinataires alors que tes deux relations sont en 1-n... elles devraient être en n-n...
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/09/2007, 23h32
  2. Enregistrement multiple dans une base à partir d'un formulaire
    Par ange_dragon dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/06/2007, 15h28
  3. enregistrements multiples pourquoi?
    Par theclear dans le forum Langage SQL
    Réponses: 6
    Dernier message: 07/12/2004, 12h30
  4. Enregistrements multiples renvoyés à partir d'une excécution
    Par Didier100 dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2004, 15h25
  5. Tables jointes, avec enregistrements multiples
    Par ARRG dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/07/2004, 14h00

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