salut !
J'ai un problème avec les embeded forms à la validation.
Je mets en forme moi même le formulaire, et je ne sais pas si je fais ça dans les règles de l'art... Cela a marché avant que je ne bricole le formulaire moi-même..
Voici l'erreur que j'ai lorsque j'essaye d'envoyer le formulaire
Le formulaire VictimeForm est inclu dans le formulaire DeclarationForm.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3* Unexpected extra form field named "idvictime"..
Voici un extrait du schema.yml de mes deux tables
Voici un extrait du template (_form.php) :
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 Declaration: connection: doctrine tableName: Declaration columns: iddeclaration: type: integer(4) fixed: false unsigned: false primary: true autoincrement: true *** idvictime: type: integer(4) fixed: false unsigned: false primary: false notnull: false autoincrement: false *** relations: *** Victime: local: idvictime foreign: idvictime type: one *** Victime: connection: doctrine tableName: Victime columns: idvictime: type: integer(4) fixed: false unsigned: false primary: true autoincrement: true *** relations: *** Declaration: local: idvictime foreign: idvictime type: many
Mon fichier DeclarationForm.class :
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 <form class="Formulaire" action="<?php echo url_for('declaration/'.($form->getObject()->isNew() ? 'create' : 'update').(!$form->getObject()->isNew() ? '?iddeclaration='. $form->getObject()->getIddeclaration() : '')) ?>" method="post" <?php $form->isMultipart() and print 'enctype="multipart/form-data" ' ?>> <?php if (!$form->getObject()->isNew()): ?> <input type="hidden" name="sf_method" value="put" /> <?php endif; ?> <fieldset> <legend><?php echo('Victime'); ?></legend> <ul class='formulaire'> // embeded form <span> <?php echo $form['Ajout d\'une victime']['matricule_rh']->renderLabel(); ?> <?php echo $form['Ajout d\'une victime']['matricule_rh']->renderHelp() ?> <?php echo $form['Ajout d\'une victime']['matricule_rh']->hasError() ? ' <span style="color: Red;">'.$form['Ajout d\'une victime']['matricule_rh']->getError().'</span>' : '' ?> </span> <li> <?php echo $form['Ajout d\'une victime']['matricule_rh']->render();?> </li> <span> <?php echo $form['Ajout d\'une victime']['nom']->renderLabel(); ?> <?php echo $form['Ajout d\'une victime']['nom']->renderHelp() ?> <?php echo $form['Ajout d\'une victime']['nom']->hasError() ? ' <span style="color: Red;">'.$form['Ajout d\'une victime']['nom']->getError().'</span>' : '' ?> </span> <li> <?php echo $form['Ajout d\'une victime']['nom']->render();?> </li> <span> <?php echo $form['Ajout d\'une victime']['prenom']->renderLabel(); ?> <?php echo $form['Ajout d\'une victime']['prenom']->renderHelp() ?> <?php echo $form['Ajout d\'une victime']['prenom']->hasError() ? ' <span style="color: Red;">'.$form['Ajout d\'une victime']['prenom']->getError().'</span>' : '' ?> </span> *** </ul> <ul class='formulaire'> <li> <span> <?php echo $form['idsituation']->renderLabel(); ?> <?php echo $form['idsituation']->renderHelp() ?> <?php echo $form['idsituation']->hasError() ? ' <span style="color: Red;">'.$form['idsituation']->getError().'</span>' : '' ?> </span> </li> <li> <?php echo $form['idsituation']->render() ?> </li> <li> <span> <?php echo $form['idregime']->renderLabel(); ?> <?php echo $form['idregime']->renderHelp() ?> <?php echo $form['idregime']->hasError() ? ' <span style="color: Red;">'.$form['idregime']->getError().'</span>' : '' ?> </span> </li> <li> <?php echo $form['idregime']->render() ?> </li> </ul> *** <div> <?php echo $form->renderHiddenFields() ?> <input type="submit" value="Enregistrer" /> <a href="<?php echo url_for('declaration/index') ?>">Revoir la liste</a> <?php if (!$form->getObject()->isNew()): ?> <?php echo link_to('Supprimer', 'declaration/delete?iddeclaration='.$form->getObject()->getIddeclaration(), array('method' => 'delete', 'confirm' => 'Etes vous sûr(e) ?')) ?> <?php endif; ?> </div> </form>
Je tourne en rond là dessus depuis un moment, quelqu'un peut m'aider ?
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 <?php class DeclarationForm extends BaseDeclarationForm { public function configure() { $this->widgetSchema->setformformattername('list'); *** unset($this['date_creation'],$this['clone'],$this['iddeclaration_clone'],$this['idvictime'],$this['idetat'],$this['auteur_login'],$this['iddeclaration_clone']); $victime = $this->getObject()->getVictime(); $victimeForm = new VictimeForm($victime); unset($victimeForm['idvictime']); $this->embedForm('victime', $victimeForm); } }
Merci beaucoup d'avance
Partager