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.