Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-05-2009 01:57:47

aure
Membre
Lieu: Chimay, Belgique
Date d'inscription: 05-05-2009
Messages: 30
Site web

Update impossible avec objet Zend_Db_Table_abstract

Bonjour,

je voudrais effectuer une mise à jour sur une entrée via un formulaire.

Le code que j'utilise pour ce faire:

Code:

           $id = $params['id'];
            $this->_yearTable- = new TYear();
            $year = $this->_yearTable->find($id)->current();
        

            $form = new Zfdev_Form_Year();
            $form->setAction($this->view->url(array('module'=>'admin', 'controller'=>'year', 'action'=>'update', 'id'=>$id), 'default', true));
            $form->setDefaults($year->toArray());

            if($this->getRequest()->isPost() && $form->isValid($_POST))
            {
                $values = $form->getValues();
                $year->setFromArray(array_intersect_key($values, $year->toArray()));

                $year->save();
             }

Mais lorsque je veux mettre à jour, j'obtiens l'erreur suivante: "Cannot update entries " (à noter que je peux effectuer un 'insert' sans problème...).

Pouvez-vous m'aider ?

Merci, wink

auré

Hors ligne

 

#2 07-05-2009 09:47:25

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Update impossible avec objet Zend_Db_Table_abstract

Hello,

1. L'array_intersect_key n'est plus nécessaire depuis un moment (à moins d'être sur une ancienne version ZF)

2. Ce message n'est pas un message ZF (ou alors tu ne l'as pas reproduit exactement). Ce n'est pas un message de ton SGBD ?

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 07-05-2009 13:15:52

aure
Membre
Lieu: Chimay, Belgique
Date d'inscription: 05-05-2009
Messages: 30
Site web

Re: Update impossible avec objet Zend_Db_Table_abstract

Bonjour,

merci mikaelkael.

Voici plus d'info sur l'erreur que je rencontre.

Code:

Exception information:

Message: Cannot update entries 

Stack trace:

#0 C:\wamp\www\library\Zend\Db\Table\Row\Abstract.php(546): TYear->update(Array, Array)
#1 C:\wamp\www\library\Zend\Db\Table\Row\Abstract.php(420): Zend_Db_Table_Row_Abstract->_doUpdate()
#2 C:\wamp\www\website\application\admin\controllers\YearController.php(72): Zend_Db_Table_Row_Abstract->save()
#3 C:\wamp\www\library\Zend\Controller\Action.php(503): Admin_YearController->updateAction()
#4 C:\wamp\www\library\Zend\Controller\Dispatcher\Standard.php(285): Zend_Controller_Action->dispatch('updateAction')
#5 C:\wamp\www\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#6 C:\wamp\www\website\index.php(54): Zend_Controller_Front->dispatch()
#7 {main}

Request Parameters:

array(6) {
  ["module"]=>
  string(5) "admin"
  ["controller"]=>
  string(4) "year"
  ["action"]=>
  string(6) "update"
  ["id"]=>
  string(1) "1"
  ["yea_value"]=>
  string(4) "2002"
  ["submit"]=>
  string(2) "OK"
}

Merci pour votre aide, wink

auré

Hors ligne

 

#4 07-05-2009 14:27:14

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Update impossible avec objet Zend_Db_Table_abstract

Hello,

Au hasard un "yea" au lieu de "year" dans ton form.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#5 07-05-2009 14:35:59

aure
Membre
Lieu: Chimay, Belgique
Date d'inscription: 05-05-2009
Messages: 30
Site web

Re: Update impossible avec objet Zend_Db_Table_abstract

Salut,

non, le 'yea' est normal, je préfixe chaque champs de ma table par les 3 premières lettres de celle-ci.

Y a-t-il la possibilité de voir la requête 'update' qui sera utilisée ?

Merci.

auré

Hors ligne

 

#6 07-05-2009 16:14:24

aure
Membre
Lieu: Chimay, Belgique
Date d'inscription: 05-05-2009
Messages: 30
Site web

Re: Update impossible avec objet Zend_Db_Table_abstract

Bonjour,

si je remplace le code effectuant la mise à jour par le code suivant, ça fonctionne:

Code:

            if($this->getRequest()->isPost() && $form->isValid($_POST))
            {
                $db = Zend_Db_Table::getDefaultAdapter();
                $data = array('yea_value'=>$params['yea_value']);

                $n = $db->update('year', $data, "yea_id=$id");
            }

Mais mon but étant de tester et faire fonctionner la mise à jour en utilisant des objets Zend_DB_Table_Abstract, ça ne répond pas à ma question... smile

Je suppose que ça doit être possible avec un code ressemblant à mon premier post...

Merci,

auré

Hors ligne

 

#7 07-05-2009 16:28:12

aure
Membre
Lieu: Chimay, Belgique
Date d'inscription: 05-05-2009
Messages: 30
Site web

Re: Update impossible avec objet Zend_Db_Table_abstract

Problème résolu.

Le problème se situait au niveau de mon modèle.

auré

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages