Bonjour,
je viens vers vous à cause d'une erreur an error occured, application error.
Je par d'un tableau d'affichage de tous mes résultat. quand je clique sur le bouton modifier, celui renvoie sur un from pré-remplie. Jusque la tout va bien.
Dès lors que je modifie et valide cela me fait une erreur. Je pense donc que cela vient d'une de mes requêtes que je pensais bonne.
Pourriez vous m'aider s'il vous plaît?
mon db_table:
mon controller :
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 public function find($idservice, $service) { $select = $this->select() ->setIntegrityCheck(false) ->from(array('s' => 'service'), array('id')) ->where('id = ?', 'id'); $rowSet = $this->fetchAll($select); $idservice = $rowSet->current(); } public function updateService($data) { $data = array( 'name' => $service, ); $this->update($data, array('id = ?', $idservice)); }
et mon form:
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 try { $form = new Application_Form_Modifierservice(); $form->setMethod('post'); $this->getRequest()->getParam ( 'id' ); $form->init(); $this->view->formModifierService = $form; }catch (Zend_Exception $e) { $this->view->formModifierService = $e->getMessage(); } if ($this->_request->isPost()) { $formData = $this->_request->getPost(); if ($form->isValid($formData)) { $service = new Application_Model_DbTable_Service(); $this->view->service = $service->find($idservice, $service); $id = (int)$form->getValue('id'); $row = $service->fetchRow('id='.$id); $row->name = $form->getValue('name'); $row->link_description = $form->getValue('link_description'); $row->enable = $form->getValue('enable'); $row->updateService($formData); //$service->updateService($formData); $this->_redirect('/'); } else { $form->populate($formData); } } else { $id = (int)$this->_request->getParam('id', 0); if ($id > 0) { $service = new Application_Model_DbTable_Service(); $service = $service->fetchRow('id='.$id); $form->populate($service->toArray()); } }
Je vous remercie d'avance de votre aide.
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 $idservice = new Zend_Form_Element_Hidden('id'); $service = new Zend_Form_Element_Text('name'); //Définition du validateur pour vérifier si le service existe $validator = new Zend_Validate_Db_NoRecordExists('service', 'name'); if ($validator->isValid($service)) { // Le nom d'utilisateur semble absent de la table } else { // invalide : l'utilisateur est probablement présent dans la table $messages = $validator->getMessages(); foreach ($messages as $message) { echo "$message\n"; } } $service->setLabel('Service') ->setRequired(true) ->addFilter('StringTrim') ->addValidator($validator) ->addValidator('NotEmpty'); // Définition validateur du textarea limitant max 500 caractères $validatorarea = new Zend_Validate_StringLength(array('min' => 0,'max' => 500)); if ($validatorarea->isValid("")) { // retourne true }else{ echo "Longueur du champ restreint à 500"; } $description = new Zend_Form_Element_Textarea('link_description'); $description->setLabel('Description') ->setRequired(true) ->addFilter('StringTrim') ->addValidator($validatorarea) ->addValidator('NotEmpty'); $enable = new Zend_Form_Element_Checkbox('enable'); $enable->setLabel('Cochez si actif'); $ajouter = new Zend_Form_Element_Submit('Ajouter'); $ajouter->setAttrib('id', 'ajouter'); $this->addElements(array($idservice,$service,$description,$enable,$ajouter)); }
Bien cordialement,
Partager