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é :
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
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$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