Bonjour,

je suis actuellement sur Symfony 1.4 avec doctrine 1.2.
Je voulais faire la même chose que toi avec une clef étrangère dans la 
table translation pour avoir une table média commune à tout mon projet.

Donc j'ai réussi.. je te balance mon schema.yml

Ma Table "Media" :
Media:
  connection:               doctrine
  tableName:               media
  actAs:
    SoftDelete:
      fields:                   [deleted_at]
    Timestampable:
      fields:                   [created_at, updated_at]
  options:
    type:                      InnoDB
    collate:                   utf8_unicode_ci
    charset:                  utf8
    symfony:
      filter:                    false
  columns:
    id:                          { type: integer(4), notnull: true, 
unsigned: true, primary: true, autoincrement: true }
    type:                      { type: string(50), notnull: true }
    filename:                { type: string(255), notnull: false, default: 
NULL }
    file_size:                { type: integer, notnull: false, default: 
NULL }
    file_width:               { type: integer, notnull: false, default: 
NULL }
    file_height:              { type: integer, notnull: false, default: 
NULL }
    type_mime:             { type: string(50), notnull: false, default: 
NULL }
    extension:               { type: string(5), notnull: false, default: 
NULL }

Ma Table "Pdf" :
Pdf:
  connection:                    doctrine
  tableName:                     pdf
  actAs:
    I18n:
      fields:                        [titre, media_id]
    SoftDelete:
      fields:                        [deleted_at]
    Timestampable:
      fields:                        [created_at, updated_at]
  options:
    type:                            InnoDB
    collate:                         utf8_unicode_ci
    charset:                        utf8
  columns:
    id:                                { type: integer(4), notnull: true, 
unsigned: true, primary: true, autoincrement: true }
    titre:                             { type: varchar(255), notnull: true }
    hidden:                         { type: boolean, notnull: true, 
default: 1 }
    media_id:                      { type: integer(4), notnull: false, 
unsigned: true, default: NULL }
  relations:
    Media:                       { class: Media, local: media_id, foreign: 
id, type: one, foreignType: many }

Par contre le problème que j'ai eu, c'est que ma relation je la nomme 
rarement avec le nom de ma table qui fait appelle!! Donc ma relation Media 
dans ma table Pdf je l'appelle Fichier, c'est une grosse erreur car 
doctrine n'arrive pas à faire la relation entre Pdf et Media. Donc le plus 
simple est d’appelé ça relation du même nom que la table relationnelle.

J'espère que j'ai était assez clair?

Si ça peut aidé...


Le vendredi 3 juillet 2009 11:50:12 UTC+2, FabD a écrit :
>
> Le 3 juillet 2009 11:31, mikael.randy<mikael.ra...@gmail.com> a écrit : 
> > 
> > Non, non, je cherche bien à associer une image par traduction. 
> > 
> > Chaque traduction n'aura pas la même image, pour différentes raison 
> > (la principale étant que le client le demande xD), et je doit donc 
> > faire en sorte que chaque traduction de chaque catégorie puisse être 
> > associée à un media. 
> > Tout en sachant que les médias pourront être associés à d'autres 
> > tables, qui ne seront pas traduites. Il est donc exclu de créer une 
> > traduction de mes médias ;) 
> > 
>
> Ok, au temps pour moi, je n'avais compris ce que tu voulais faire :-( 
> Je pense que ce n'est pas possible de le faire à partir du schema yml. 
>
> J'ai cherché il n'y a pas longtemps à mettre une clé étrangère sur la 
> langue utilisée dans les tables de traduction, ce n'était pas possible 
> à partir du schéma yml. 
>
> Fabien 
>
> > On 3 juil, 11:17, "FlyLM [ML]" <flylm...@gmail.com> wrote: 
> >> Le 3 juillet 2009 10:30, mikael.randy<mikael.ra...@gmail.com> a écrit 
> : 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> > Bonjour à tous 
> >> 
> >> > Développeur Symfony et Propel depuis plus d'un an, j'amorce désormais 
> >> > le virage vers Doctrine. 
> >> > Pour mon 1er projet, je me retrouve confronté à une difficulté que je 
> >> > n'arrive pas à résoudre, même si je ne doute pas que Doctrine sais le 
> >> > faire et que vous allez me débloquer facilement . ;o) 
> >> 
> >> > Voilà, comment, depuis un schema.yml avec Doctrine, définir une clé 
> >> > étrangère dans une table I18n ? 
> >> 
> >> > Je m'explique, j'ai une table "Category", qui est traduite, via 
> >> > l'utilisation du behavior "I18n", et une table "Media". 
> >> > Je voudrais disposer d'un champ "id_media" dans la table 
> >> > "Category_translate" qui pointe sur la table "Media". 
> >> 
> >> > Voici le schéma de base, sans la clé étrangère : 
> >> > ================================== 
> >> > Category: 
> >> >  actAs: 
> >> >    I18n: 
> >> >      fields:  [name, id_media] 
> >> >  columns: 
> >> >    id_thematique: { type: integer, primary: true, notnull: true, 
> >> > autoincrement: true } 
> >> >    name: { type: string(45) } 
> >> >    id_media: {type: integer } 
> >> 
> >> > Media: 
> >> >  columns: 
> >> >    id_media: { type:  integer, primary: true, notnull: true, 
> >> > autoincrement: true } 
> >> > ================================== 
> >> 
> >> > J'ai tenté de définir la relation dans la table "Category", mais j'ai 
> >> > un message d'erreur du type "Category.id_media not exist". 
> >> > J'ai également tenté de définir la relation dans le behavior, mais 
> >> > sans résultat, sans message d'erreur. 
> >> 
> >> > Est-ce que quelqu'un sait comment faire ? 
> >> 
> >> Quel est l'intérêt de vouloir passer "id_media" dans une table de 
> traduction ?? 
> >> 
> >> Ce ne serait pas plutôt cela que tu veux faire : 
> >> 
> >> Category: 
> >>   actAs: 
> >>     I18n: 
> >>       fields:  [name] 
> >>   columns: 
> >>     id_thematique: { type: integer, primary: true, autoincrement: true 
> } 
> >>     name: { type: string(45) } 
> >>     id_media: {type: integer } 
> >>   relations: 
> >>     Media: { onDelete: CASCADE, local: id_media, foreign: id_media, 
> >> foreignAlias: Categories } 
> >> 
> >> Media: 
> >>   columns: 
> >>     id_media: { type:  integer, primary: true, autoincrement: true } 
> >> 
> >> Fabien 
> > > 
> > 
>

Le vendredi 3 juillet 2009 11:50:12 UTC+2, FabD a écrit :
>
> Le 3 juillet 2009 11:31, mikael.randy<mikael.ra...@gmail.com> a écrit : 
> > 
> > Non, non, je cherche bien à associer une image par traduction. 
> > 
> > Chaque traduction n'aura pas la même image, pour différentes raison 
> > (la principale étant que le client le demande xD), et je doit donc 
> > faire en sorte que chaque traduction de chaque catégorie puisse être 
> > associée à un media. 
> > Tout en sachant que les médias pourront être associés à d'autres 
> > tables, qui ne seront pas traduites. Il est donc exclu de créer une 
> > traduction de mes médias ;) 
> > 
>
> Ok, au temps pour moi, je n'avais compris ce que tu voulais faire :-( 
> Je pense que ce n'est pas possible de le faire à partir du schema yml. 
>
> J'ai cherché il n'y a pas longtemps à mettre une clé étrangère sur la 
> langue utilisée dans les tables de traduction, ce n'était pas possible 
> à partir du schéma yml. 
>
> Fabien 
>
> > On 3 juil, 11:17, "FlyLM [ML]" <flylm...@gmail.com> wrote: 
> >> Le 3 juillet 2009 10:30, mikael.randy<mikael.ra...@gmail.com> a écrit 
> : 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> > Bonjour à tous 
> >> 
> >> > Développeur Symfony et Propel depuis plus d'un an, j'amorce désormais 
> >> > le virage vers Doctrine. 
> >> > Pour mon 1er projet, je me retrouve confronté à une difficulté que je 
> >> > n'arrive pas à résoudre, même si je ne doute pas que Doctrine sais le 
> >> > faire et que vous allez me débloquer facilement . ;o) 
> >> 
> >> > Voilà, comment, depuis un schema.yml avec Doctrine, définir une clé 
> >> > étrangère dans une table I18n ? 
> >> 
> >> > Je m'explique, j'ai une table "Category", qui est traduite, via 
> >> > l'utilisation du behavior "I18n", et une table "Media". 
> >> > Je voudrais disposer d'un champ "id_media" dans la table 
> >> > "Category_translate" qui pointe sur la table "Media". 
> >> 
> >> > Voici le schéma de base, sans la clé étrangère : 
> >> > ================================== 
> >> > Category: 
> >> >  actAs: 
> >> >    I18n: 
> >> >      fields:  [name, id_media] 
> >> >  columns: 
> >> >    id_thematique: { type: integer, primary: true, notnull: true, 
> >> > autoincrement: true } 
> >> >    name: { type: string(45) } 
> >> >    id_media: {type: integer } 
> >> 
> >> > Media: 
> >> >  columns: 
> >> >    id_media: { type:  integer, primary: true, notnull: true, 
> >> > autoincrement: true } 
> >> > ================================== 
> >> 
> >> > J'ai tenté de définir la relation dans la table "Category", mais j'ai 
> >> > un message d'erreur du type "Category.id_media not exist". 
> >> > J'ai également tenté de définir la relation dans le behavior, mais 
> >> > sans résultat, sans message d'erreur. 
> >> 
> >> > Est-ce que quelqu'un sait comment faire ? 
> >> 
> >> Quel est l'intérêt de vouloir passer "id_media" dans une table de 
> traduction ?? 
> >> 
> >> Ce ne serait pas plutôt cela que tu veux faire : 
> >> 
> >> Category: 
> >>   actAs: 
> >>     I18n: 
> >>       fields:  [name] 
> >>   columns: 
> >>     id_thematique: { type: integer, primary: true, autoincrement: true 
> } 
> >>     name: { type: string(45) } 
> >>     id_media: {type: integer } 
> >>   relations: 
> >>     Media: { onDelete: CASCADE, local: id_media, foreign: id_media, 
> >> foreignAlias: Categories } 
> >> 
> >> Media: 
> >>   columns: 
> >>     id_media: { type:  integer, primary: true, autoincrement: true } 
> >> 
> >> Fabien 
> > > 
> > 
>

Le vendredi 3 juillet 2009 11:50:12 UTC+2, FabD a écrit :
>
> Le 3 juillet 2009 11:31, mikael.randy<mikael.ra...@gmail.com> a écrit : 
> > 
> > Non, non, je cherche bien à associer une image par traduction. 
> > 
> > Chaque traduction n'aura pas la même image, pour différentes raison 
> > (la principale étant que le client le demande xD), et je doit donc 
> > faire en sorte que chaque traduction de chaque catégorie puisse être 
> > associée à un media. 
> > Tout en sachant que les médias pourront être associés à d'autres 
> > tables, qui ne seront pas traduites. Il est donc exclu de créer une 
> > traduction de mes médias ;) 
> > 
>
> Ok, au temps pour moi, je n'avais compris ce que tu voulais faire :-( 
> Je pense que ce n'est pas possible de le faire à partir du schema yml. 
>
> J'ai cherché il n'y a pas longtemps à mettre une clé étrangère sur la 
> langue utilisée dans les tables de traduction, ce n'était pas possible 
> à partir du schéma yml. 
>
> Fabien 
>
> > On 3 juil, 11:17, "FlyLM [ML]" <flylm...@gmail.com> wrote: 
> >> Le 3 juillet 2009 10:30, mikael.randy<mikael.ra...@gmail.com> a écrit 
> : 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 
> >> > Bonjour à tous 
> >> 
> >> > Développeur Symfony et Propel depuis plus d'un an, j'amorce désormais 
> >> > le virage vers Doctrine. 
> >> > Pour mon 1er projet, je me retrouve confronté à une difficulté que je 
> >> > n'arrive pas à résoudre, même si je ne doute pas que Doctrine sais le 
> >> > faire et que vous allez me débloquer facilement . ;o) 
> >> 
> >> > Voilà, comment, depuis un schema.yml avec Doctrine, définir une clé 
> >> > étrangère dans une table I18n ? 
> >> 
> >> > Je m'explique, j'ai une table "Category", qui est traduite, via 
> >> > l'utilisation du behavior "I18n", et une table "Media". 
> >> > Je voudrais disposer d'un champ "id_media" dans la table 
> >> > "Category_translate" qui pointe sur la table "Media". 
> >> 
> >> > Voici le schéma de base, sans la clé étrangère : 
> >> > ================================== 
> >> > Category: 
> >> >  actAs: 
> >> >    I18n: 
> >> >      fields:  [name, id_media] 
> >> >  columns: 
> >> >    id_thematique: { type: integer, primary: true, notnull: true, 
> >> > autoincrement: true } 
> >> >    name: { type: string(45) } 
> >> >    id_media: {type: integer } 
> >> 
> >> > Media: 
> >> >  columns: 
> >> >    id_media: { type:  integer, primary: true, notnull: true, 
> >> > autoincrement: true } 
> >> > ================================== 
> >> 
> >> > J'ai tenté de définir la relation dans la table "Category", mais j'ai 
> >> > un message d'erreur du type "Category.id_media not exist". 
> >> > J'ai également tenté de définir la relation dans le behavior, mais 
> >> > sans résultat, sans message d'erreur. 
> >> 
> >> > Est-ce que quelqu'un sait comment faire ? 
> >> 
> >> Quel est l'intérêt de vouloir passer "id_media" dans une table de 
> traduction ?? 
> >> 
> >> Ce ne serait pas plutôt cela que tu veux faire : 
> >> 
> >> Category: 
> >>   actAs: 
> >>     I18n: 
> >>       fields:  [name] 
> >>   columns: 
> >>     id_thematique: { type: integer, primary: true, autoincrement: true 
> } 
> >>     name: { type: string(45) } 
> >>     id_media: {type: integer } 
> >>   relations: 
> >>     Media: { onDelete: CASCADE, local: id_media, foreign: id_media, 
> >> foreignAlias: Categories } 
> >> 
> >> Media: 
> >>   columns: 
> >>     id_media: { type:  integer, primary: true, autoincrement: true } 
> >> 
> >> Fabien 
> > > 
> > 
>

-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Cette discussion peut être lue sur le Web à l'adresse 
https://groups.google.com/d/msg/symfony-fr/-/FWotmA1F8ScJ.
Pour envoyer un message à ce groupe, adressez un e-mail 
à symfony-fr@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à