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 :

Erreur Formulaires imbriqués


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
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut Erreur Formulaires imbriqués
    Bonjour à tous,

    J'ai un souci avec un formulaire imbriqué de questions/réponses.

    Voici mon schéma.yml:

    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
     
    Question:
      tableName: questions
      columns:
        title: { type: string(255), notnull: true }
     
    Reponses:
      tableName: questions_reponses
      columns:
        question_id: { type: integer, notnull: true }
        reponse: { type: string(255), notnull: true }
      relations:
        Question:
          alias: Question
          foreignType: many
          foreignAlias: Reponse
          local: question_id
          foreign: id
          onDelete: CASCADE
    Comme vous l'aurez compris je fait un fomulaire ou j'ai une question et je peux ajouter autant de questions que je veux. Pour cela j'ai mis le formulaire qui va bien mais quand je sauvegarde j'ai une erreur comme quoi mes réponses ne sont pas attachées à une question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`questions_reponses`, CONSTRAINT `questions_reponses_question_id_questions_id` FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`) ON DELETE CASCADE)
    Auriez vous une idée de ce que j'ai fait de mal?

    Merci à vous!

  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
    Pour le formulaire, je ne sais pas, tu ne donnes aucune indication sur la méthode utilisée pour le mettre en œuvre.

    Il faut juste faire attention à une chose, de tête, les embed sont sauvés avant le form de base. Donc, si tu crée une nouvelle question, et que tu y mets des réponses, elle ne pourront être sauvée, vu que la question (et son Id qui sert de liaison) ne seront créée qu'après. Mais je ne sais absolument pas si c'est cela que tu as mis en œuvre.

    Pour le shema.yml, voici la méthode que j'aurais utilisée:
    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
     
    Question:
      tableName: questions
      columns:
        title: { type: string(255), notnull: true }
     
    Reponse:
      tableName: questions_reponses
      columns:
        question_id: { type: integer, notnull: true }
        reponse: { type: string(255), notnull: true }
      relations:
        Question:
          foreignAlias: Reponses
          onDelete: CASCADE

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Ouep c'est ce que j'avais pensé comprendre de l'erreur SQL qui m'indiquait que Question_id était inconnu. Du coup je dois générer le form à l'envers? Je dois créer un ReponsesForm qui inclue le QuestionForm?

    J'utilise aucune méthode particulière pour sauver le form... Un save seulement. As tu besoin d'autres fichiers pour voir mon erreur?

  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
    En fait, tu dois mettre dans le form() une commande qui vérifie si l'objet question lié est nouveau ou non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    if ( !$this->getObject()->isNew() )
    {
       // le code pour insérer les embed.
    }
    Ainsi, à la création d'une question il ne sera pas possible d'inclure de réponse. Une fois la question posée, les zones pour les réponse apparaîtrons.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Oui mais dans mon formulaire Question, j'ajoute automatiquement les éléments pour entrer les réponses. Je ne souhaite pas que l'utilisateur ait deux écrans d'ajout.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    J'ai essayé de suivre: http://www.symfony-project.org/more-...Advanced-Forms

    Qui ne semble pas avoir de soucis et il n'utilise pas l'instruction:

    $this->getObject()->isNew()

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 44
    Par défaut
    Je fais un petit up car je suis vraiment coincé! Je ne trouve rien du tout!

    Je me demande si mon schéma.yml est bon ou pas car je ne vois pas trop d' autres raisons

Discussions similaires

  1. 2 formulaires imbriqués
    Par Invité dans le forum Langage
    Réponses: 16
    Dernier message: 11/05/2006, 08h54
  2. msg erreur: formulaire/SS-formulaire et ActiveX
    Par batide dans le forum Access
    Réponses: 3
    Dernier message: 19/04/2006, 15h18
  3. formulaires imbriqués
    Par Nounoursonne dans le forum Langage
    Réponses: 34
    Dernier message: 18/11/2005, 14h18
  4. Erreur formulaire avec XMLHttpRequest
    Par MathieuG dans le forum Langage
    Réponses: 9
    Dernier message: 21/09/2005, 11h43
  5. probleme deux formulaires imbriqués
    Par rony dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/06/2005, 18h19

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