Bonjour,
Je veux créer un formulaire de facture avec plusieurs articles. Voilà des jours que je cherche comment y arriver mais c'est l'impasse. J'essaie de télécharger le plugin ahEasyDoctrineEmbeddedRelationPlugin mais c'est pas possible j'ai un probléme avec pear.php. J'ai symfony 1.4.5 avec php5.3.0
Je vous mets le max de code pour pouvoir m'aider car je dois terminer cette application dans une semaine et c'est pour mon rapport de stage.
voilà mon schéma.yml il me semble correct mais j'ai des doutes quant aux relations entre facture et prestation.
voilà mon action class de facture:
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 Client: columns: id: type: integer(4) primary: true autoincrement: true rais_soc: type: string(250) adresse: type: string(250) cod_postal: type: integer(5) ville: type: string(30) tel: type: integer(10) Contenir: columns: prestation_id: type: integer(4) primary: true facture_id: type: integer(4) primary: true quantite: type: integer(4) relations: Facture: foreignAlias: Contenirs Prestation: foreignAlias: Contenirs Facture: columns: id: type: integer(4) primary: true client_id: type: integer(4) date_fre: type: string(10) montant_fre: type: integer relations: Client: foreignAlias: Factures Prestation: columns: id: type: integer(4) primary: true autoincrement: true designation: type: string(250) pu: type: integer(4) relations: Factures: foreignAlias: Prestations class: Facture refClass: Contenir Reglement: columns: id: type: integer(4) primary: true autoincrement: true facture_id: type: integer(4) date_reglement: type: string(10) montant_reglement: type: integer(4) relations: Facture: foreignAlias: Reglements
voilà le formulaire facture :
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 public function executeNew(sfWebRequest $request) { $this->form = new factureForm(); //$this->form1 = new prestationForm(); } public function executeCreate(sfWebRequest $request) { $this->forward404Unless($request->isMethod(sfRequest::POST)); $this->form = new factureForm(); //$this->form1 = new prestationForm(); $this->processForm($request, $this->form); $this->setTemplate('new'); } public function executeEdit(sfWebRequest $request) { $this->forward404Unless($facture = Doctrine::getTable('facture')->find(array($request->getParameter('id'))), sprintf('Object facture does not exist (%s).', $request->getParameter('id'))); $this->form = new factureForm($facture); } public function executeUpdate(sfWebRequest $request) { $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT)); $this->forward404Unless($facture = Doctrine::getTable('facture')->find(array($request->getParameter('id'))), sprintf('Object facture does not exist (%s).', $request->getParameter('id'))); $this->form = new factureForm($facture); $this->processForm($request, $this->form); $this->setTemplate('edit'); } public function executeDelete(sfWebRequest $request) { $request->checkCSRFProtection(); $this->forward404Unless($facture = Doctrine::getTable('facture')->find(array($request->getParameter('id'))), sprintf('Object facture does not exist (%s).', $request->getParameter('id'))); $facture->delete(); $this->redirect('facture/index'); } protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); //$form1->bind($request->getParameter($form1->getName()), $request->getFiles($form1->getName())); if ($form->isValid()) { $facture = $form->save(); $this->redirect('facture/edit?id='.$facture->getId()); } } }
A noter que quand je met $this-> embedRelation ça marche pas, j'ai un message d'erreur.
avec ce formulaire j'ai le formulaire prestation(equivalent à article) mais une seule ligne. Si quelqu'un peut m'aider à résoudre ce probléme svp.Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class FactureForm extends BaseFactureForm { public function configure() { unset($this['PU']); $this->embedForm('prestations', new PrestationForm()); } }
Partager