Bonjour à tous,

J'ai un souci sur un formulaire depuis quelques temps et malgré mes recherches je n'arrive pas à le résoudre !!! Si quelqu'un a une idée, je suis preneuse...

(Projet sur Symfony 1.4 avec doctrine)

Voici mon problème :

Dans mon modèle j'ai certaines tables dont la clé primaire est formée par 2 clés étrangères. J'ai suivi les tutos symfony pour réaliser les relations adéquates dans le schema.yml que vous trouverez en fin de post.

Le problème se situe au niveau des tables Critere, Frequentation et CritereFrequentation.

J'ai généré un module d'administration pour la table CritereFrequentation via la commande doctrine "generate-admin". Jusque là tout va bien...

Maintenant j'essaye de faire un ajout pour cette table là, je remplis mon formulaire et je clique sur Ajouter, et là j'ai une magnifique erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
L'objet n'a pas pu être mis à jour.
csrf token: Required.
J'ai vérifié à l'ouverture du formulaire, le csrf token est bien présent et l'attribut "value" de son input est bien rempli.

Lorsque je sauve et que j'obtiens cette erreur, le formulaire est carrément vidé et le csrf token n'a plus de "value".

J'ai crée d'autres modules d'administration sur le même projet qui fonctionnent très bien, c'est pourquoi je pense que le souci vient peut-être de mon modèle et de cette histoire de clés étrangères ???

Pouvez-vous m'aider svp ?

Merci beaucoup.

cli16

Le schema.yml :

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
Commune:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    nom:
      type: string(50)
      notnull: true
    cp:
      type: string(5)
      notnull: true
    plateforme_id:
      type: integer
  relations:
    Plateforme:
      local: plateforme_id
      foreign: id
      onDelete: CASCADE
Critere:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    nom:
      type: string(50)
      notnull: true
    groupe_critere_id:
      type: integer
  relations:
    GroupeCritere:
      local: groupe_critere_id
      foreign: id
      onDelete: CASCADE
CritereFrequentation:
  actAs: [Timestampable]
  columns:
    frequentation_id:
      type: integer
      primary: true
    critere_id:
      type: integer
      primary: true
    valeur:
      type: integer
      default: '0'
  relations:
    Frequentation:
      local: frequentation_id
      foreign: id
      onDelete: CASCADE
    Critere:
      local: critere_id
      foreign: id
      onDelete: CASCADE
Document:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    nom:
      type: string(80)
      notnull: true
    chemin:
      type: string(100)
    user_id:
      type: integer
    theme_id:
      type: integer
  relations:
    sfGuardUser:
      local: user_id
      foreign: id
      onDelete: CASCADE
    Theme:
      local: theme_id
      foreign: id
      onDelete: CASCADE
Frequentation:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    total:
      type: integer
    periode:
      type: date
      notnull: true
    commentaire_emp:
      type: string(4000)
    commentaire_coh:
      type: string(4000)
    user_id:
      type: integer
  relations:
    sfGuardUser:
      local: user_id
      foreign: id
      onDelete: CASCADE
    Criteres:
      class: Critere
      refClass: CritereFrequentation
      local: frequentation_id
      foreign: critere_id
      foreignAlias: Frequentations
    Partenaires:
      class: Partenaire
      refClass: OrientationPart
      local: frequentation_id
      foreign: partenaire_id
      foreignAlias: Orientations
    Communes:
      class: Commune
      refClass: RepartitionGeo
      local: frequentation_id
      foreign: commune_id
      foreignAlias: Repartitions
GroupeCritere:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    nom:
      type: string(50)
      notnull: true
OrientationPart:
  actAs: [Timestampable]
  columns:
    partenaire_id:
      type: integer
      primary: true
    frequentation_id:
      type: integer
      primary: true
    orri:
      type: integer
      notnull: true
    perm:
      type: integer
      notnull: true
  relations:
    Partenaire:
      local: partenaire_id
      foreign: id
      onDelete: CASCADE
    Frequentation:
      local: frequentation_id
      foreign: id
      onDelete: CASCADE
Partenaire:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    nom:
      type: string(50)
      notnull: true
    personne:
      type: string(80)
    email:
      type: string(100)
    tel:
      type: string(15)
    fax:
      type: string(15)
    adresse:
      type: string(250)
    logo:
      type: string(250)
    public:
      type: string(250)
    permanence:
      type: string(250)
    zone:
      type: string(250)
    duree:
      type: string(100)
    objectif:
      type: string(250)
    user_id:
      type: integer
  relations:
    sfGuardUser:
      local: user_id
      foreign: id
      onDelete: CASCADE
Plateforme:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    user_id:
      type: integer
    nom:
      type: string(50)
      notnull: true
  relations:
    sfGuardUser:
      local: user_id
      foreign: id
      onDelete: CASCADE
Question:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    intitule:
      type: string(250)
      notnull: true
    texte:
      type: string(4000)
      notnull: true
    user_id:
      type: integer
    theme_id:
      type: integer
  relations:
    sfGuardUser:
      local: user_id
      foreign: id
      onDelete: CASCADE
    Theme:
      local: theme_id
      foreign: id
      onDelete: CASCADE
RepartitionGeo:
  actAs: [Timestampable]
  columns:
    frequentation_id:
      type: integer
      primary: true
    commune_id:
      type: integer
      primary: true
    valeur:
      type: integer
      notnull: true
  relations:
    Frequentation:
      local: frequentation_id
      foreign: id
      onDelete: CASCADE
    Commune:
      local: commune_id
      foreign: id
      onDelete: CASCADE
Reponse:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    intitule:
      type: string(250)
      notnull: true
    texte:
      type: string(4000)
      notnull: true
    question_id:
      type: integer
      notnull: true
    fg_validation:
      type: string(1)
      fixed: true
      notnull: true
    user_id:
      type: integer
    document_id:
      type: integer
  relations:
    sfGuardUser:
      local: user_id
      foreign: id
      onDelete: CASCADE
    Question:
      local: question_id
      foreign: id
      onDelete: CASCADE
    Document:
      local: document_id
      foreign: id
      onDelete: CASCADE
Theme:
  actAs: [Timestampable]
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    nom:
      type: string(50)
      notnull: true
ThemeUser:
  actAs: [Timestampable]
  columns:
    theme_id:
      type: integer
      primary: true
    user_id:
      type: integer
      primary: true
    fg_alerte:
      type: string(1)
      fixed: true
      notnull: true
  relations:
    sfGuardUser:
      local: user_id
      foreign: id
      onDelete: CASCADE
    Theme:
      local: theme_id
      foreign: id
      onDelete: CASCADE