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 & Base de données Discussion :

[Doctrine] Problème SQL


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Points : 123
    Points
    123
    Par défaut [Doctrine] Problème SQL
    Bonjour à tous.

    Voila je suis en train de faire une sorte de "mini" messagerie, et ce que je souhaiterai faire c'est de stocker id de l'utilisateur, pour l'auteur et pour le destinataire.

    Maintenant je vous explique mon problème. J'ai crée la table dans le fichier 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
    AlepiMessagerie :
      actAs: { Timestampable: ~ }
      columns : 
        dossier_id : { type : integer, notnull : true}
        auteur_id : { type : integer(4), notnull : true}
        destinataire_id : { type : integer(4), notnull : true}
        objet : {type : string(100), notnull : true }
        message : {type : string(1000), notnull : true} 
        token: { type: string(255), notnull: true, unique: true }
      relations :
        AlepiDossier : { local: dossier_id, foreign: id, onDelete : CASCADE }
        sfGuardUser : {local : auteur_id, foreign : id, onDelete : CASCADE }
        sfGuardUser : {local : destinataire_id, foreign : id, onDelete : CASCADE }
    Il m'affiche pas d'erreur, mais en faite ce qu'il ce passe, c'est que quand je regarde dans mon SQL, ma relation de clé étrangère de mon user_id, n'y est pas, par contre celle de destinataire_id oui.

    Ce que j'ai fait alors je l'ai fait directement en SQL, reprenant ce qu'il avait mis dans le schema.sql, et en rajoutant le foreign manquant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TABLE alepi_messagerie (id BIGINT AUTO_INCREMENT, dossier_id BIGINT NOT NULL, auteur_id INT NOT NULL, destinataire_id INT NOT NULL, objet VARCHAR(100) NOT NULL, message TEXT NOT NULL, token VARCHAR(255) NOT NULL UNIQUE, created_at DATETIME, updated_at DATETIME, INDEX dossier_id_idx (dossier_id), INDEX destinataire_id_idx (destinataire_id), PRIMARY KEY(id)) ENGINE = INNODB;
     
    ALTER TABLE alepi_messagerie ADD FOREIGN KEY (dossier_id) REFERENCES alepi_dossier(id) ON DELETE CASCADE;
    ALTER TABLE alepi_messagerie ADD FOREIGN KEY (auteur_id) REFERENCES sf_guard_user(id) ON DELETE CASCADE;
    ALTER TABLE alepi_messagerie ADD FOREIGN KEY (destinataire_id) REFERENCES sf_guard_user(id) ON DELETE CASCADE;

    Et bien sur cela fonctionne nickel, j'ai bien mes deux clés étrangères référencés pour mon auteur_id, et destinataire_id.

    Donc voila j'aimerai savoir comment je pourrai faire dans mon schema.yml, pour le "finter", pour qu'il me prenne bien mes deux références d'utilisateur. ou sinon comment je pourrai faire autrement.


    Cordialement, et merci d'avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Il faut que tu donnes des noms différents à tes relations et préciser à chaque fois les classes intervenant dans la relation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    AlepiMessagerie :
      actAs: { Timestampable: ~ }
      columns : 
        dossier_id : { type : integer, notnull : true}
        auteur_id : { type : integer(4), notnull : true}
        destinataire_id : { type : integer(4), notnull : true}
        objet : {type : string(100), notnull : true }
        message : {type : string(1000), notnull : true} 
        token: { type: string(255), notnull: true, unique: true }
      relations :
        AlepiDossier : { local: dossier_id, foreign: id, onDelete : CASCADE }
        Auteur : {class: sfGuardUser, local : auteur_id, foreign : id, onDelete : CASCADE }
        Destinataire : {class: sfGuardUser, local : destinataire_id, foreign : id, onDelete : CASCADE }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Points : 123
    Points
    123
    Par défaut
    Ok un grand merci...

    La dessus tu m'as beaucoup aider... Je ne sais pas si c'est la bonne méthode pour une petite messagerie. Mais la je vais pouvoir avancer. !!!

    Encore merci.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    De rien
    J'ai eu le même problème il y a peu.
    Entre symfoniens, il faut se serrer les coudes, tant la route vers la maitrise de symfony est longue ... =)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Points : 123
    Points
    123
    Par défaut
    C'est clair en sachant que je trouve que la communauté est plutot anglaise que francaise... :S

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

Discussions similaires

  1. problème SQL avec le tutoriel recherche multi critère
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/12/2005, 19h33
  2. SQL : résoudre ce type de problème sql.
    Par LESOLEIL dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/10/2005, 13h48
  3. Problème SQL vb5
    Par mpat dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/08/2005, 16h49
  4. Problème SQL
    Par Florent0001 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/11/2004, 17h07
  5. Problèmes SQL
    Par stampe dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2004, 21h02

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