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 :

Récupérer id lors de l'enregistrement d'un formulaire [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Par défaut Récupérer id lors de l'enregistrement d'un formulaire
    Hello tout le monde,

    voilà, je débute sur symfony et je rencontre un problème dans le développement d'une application.

    Donc, j'ai "mergé" 2 formulaires liés à 2 modèles différents.
    La table du modèle A contient un champ qui est une clé étrangère du modèle B.

    Lors de l'enregistrement du formulaire "mergé", j'ai besoin d'avoir l'id de la table du modèle B mais je ne sais pas comment faire...

    Plus généralement, je ne sais écrire des données en base sans utiliser la méthode save() d'un formulaire, et ça aussi j'aimerais bien savoir comment faire : )

    Quelqu'un a une idée ?

  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
    Plein d'idée !!!

    Mais si je veux répondre avec les éléments que tu donnes, c'est un roman qu'il va falloir écrire.

    Pour la question 1 : Si le formulaire B dépend de 1, je pense qu'un embedForm() serait plus adapté.

    Pour la question 2 : Le save du formulaire fait appel au save du modèle objet. suivant le cas, tu as intérêt à mettre ton code dans l'un ou l'autre, tous dépend de si ce code est lié au formulaire et que à ce formulaire ou si c'est lié aux données, quelque soit le formulaire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Par défaut
    Alors plus précisément :

    je veux créer un formulaire de création d'un nouvel artiste.
    A la création du nouvel artiste, je dois créer une une clé étrangère de la table fiche dans la table artiste.

    Idéalement, il faudrait que je puisse définir la valeur de la clé étrangère directement dans le code du formulaire.

    Pour l'instant j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class ArtisteForm extends BaseArtisteForm
    {
      public function configure()
      {
    	unset(
    		$this["id_fiche"] //id de fiche dans la table artiste
    	);
     
    	$this->mergeForm(new FicheForm());
     
      }
    }
    Si te suis bien mimi, je peux faire ce que je veux en faisant ça ?

    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
     
    class ArtisteForm extends BaseArtisteForm
    {
      public function configure()
      {
    	unset(
    		$this["id_fiche"] //id de fiche dans la table artiste
    	);
     
    	$this->mergeForm(new FicheForm());
     
            $fiche = new Fiche(); //création d'une nouvelle fiche
            $this["id_fiche"] = $fiche->getId(); //récupération de l'id de la fiche
      }
    }

  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
    Quel est le type de relation définie dans le schema.yml entre les tables "artiste" et "fiche" ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Par défaut
    C'est une relation 1-1 : un artiste n'existe que dans une seule fiche, et une fiche ne contient qu'un seul artiste.

    Voici mon schema :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    Artiste:
      columns:
        id_fiche: integer
        nom: string(255)
      relations:
          Fiche:
              local: id_fiche
              foreign: id
     
    OeuvreArtiste:
        columns:
          id_artiste: integer
          id_oeuvre: integer
     
    Oeuvre:
        columns:
            id_fiche: integer
            id_type_oeuvre: integer
            nom: string(255)
     
    TypeOeuvre:
        columns: 
            nom: string(255)
     
    Fiche:
        actAs: 
            Timestampable: ~ 
        columns:
            id_type_fiche: integer
            description: string(9999)
            created_by: integer
            modified_by: integer
     
    Utilisateur:
        columns:
            nom: string(255)
            mail: string(255)
     
    ProjetFiche:
        columns:
            id_projet: integer
            id_fiche: integer
     
    Projet:
        columns:
            nom: string(255)
     
    Coordonnee:
        columns: 
            nom: string(255)
            tel: string(255)
            mail: string(255)
            rue: string(255)
            cp: string(255)
            ville: string(255)
     
    CoordonneeFiche:
        columns:
            id_coordonne: integer
            id_fiche: integer
     
    MetadonneeFiche:
        columns:
            id_fiche: integer
     
    Metadonnee:
        columns:
            nom: string(255)
     
    Commentaire:
        columns:
            id_fiche: integer
            texte: string(500)
     
    TypeFiche:
        columns:
            nom: string(255)

  6. #6
    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
    Question idiote n°1 : pourquoi faire deux objets alors ?

    Question idiote n°2 : la liaison décrite dans doctrine est une 1-n, est-ce normal ?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/11/2015, 22h48
  2. DBGrid récupérer les valeurs de l'enregistrement courant
    Par bob_sapp dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/09/2014, 07h56
  3. [AC-2003] Créer un avertissement lors de l'enregistrement d'un formulaire
    Par maringot dans le forum IHM
    Réponses: 2
    Dernier message: 05/02/2014, 09h04
  4. Récupérer la position d'un enregistrement
    Par Hell dans le forum Requêtes
    Réponses: 6
    Dernier message: 10/09/2004, 19h14
  5. Réponses: 1
    Dernier message: 23/02/2004, 12h58

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