Bonjour.
Je travaille actuellement à la réécriture d'une boutique en ligne en symfony. Cette application est multilingue et les information sur un produit sont stockées dans une table dont la clef primaire est le code du produit et le code de la langue. Je souhait afficher le contenu de cette table dans mon template mais j'ai un doute sur la manière dont je procede.
voici la description des tables en simplifié :
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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
Articles:
connection: doctrine
tableName: articles
columns:
id:
type: integer(8)
fixed: false
unsigned: false
primary: true
sequence: articles_id
relations:
ArticlesDesc:
local: id
foreign: article
type: many
ArticlesDesc:
connection: doctrine
tableName: articles_desc
columns:
langue:
type: integer(4)
fixed: false
unsigned: false
primary: true
name:
type: string()
fixed: false
unsigned: false
notnull: true
primary: false
short_desc:
type: string()
fixed: false
unsigned: false
notnull: false
primary: false
long_desc:
type: string()
fixed: false
unsigned: false
notnull: false
primary: false
posologie:
type: string()
fixed: false
unsigned: false
notnull: false
primary: false
contenu:
type: string()
fixed: false
unsigned: false
notnull: false
primary: false
composition:
type: string()
fixed: false
unsigned: false
notnull: false
primary: false
msg_promo:
type: string()
fixed: false
unsigned: false
notnull: false
primary: false
article:
type: integer(8)
fixed: false
unsigned: false
primary: true
relations:
Langues:
local: langue
foreign: dbid
type: one
Articles:
local: article
foreign: id
type: one
Langues:
connection: doctrine
tableName: langues
columns:
dbid:
type: integer(4)
fixed: false
unsigned: false
primary: true
relations:
ArticlesDesc:
local: dbid
foreign: langue
type: many |
dans mon template pour afficher le champs short_desc en francais, je fais ceci :
$article->getArticlesDesc()->toKeyValueArray('langue', 'short_desc')->getRaw(1)
1 correspond à l'ID de francais dans la base (je n'ai pas encore géré la langue ^^)
Je doute que cette méthode soit la seule facon de récupérer les enregistrements et plus encore que ce soit une méthode très "standard" symfony.
Si quelqu'un pouvait éclairer ma lanterne je lui en serait très reconnaissant car tout ou presque dans cette bdd est géré en fonction de la langue ou en tout cas ave des relations n:n
Partager