0

J'essaie de mettre à jour un objet en utilisant ce code: La colonne co_nbre sera mise à jour à 0 !!!! Je pense que vous m'aiderez à résoudre ce problème et beaucoup.Comment mettre à jour un objet dans Zend Framework 2

public function update($model) { 
     $data = get_object_vars($model); 
     $id = (int) $model->id; 
     $this->tableGateway->update($data, array('id' => $id)); 
    } 

et voici comment ai-je l'utilise dans mon contrôleur:

if ($form->isValid()) { 
        $data = $form->getData(); 
        $addi_info = new Addiinfo(); 
        $addi_info->exchangeArray($data); 
        $addi_info->co_nbre = $request->getPost("co_nbre"); 
        $addi_info->user_pin = $this->layout()->pin; 
        $addi_info->co_latitude = $request->getPost("latitude"); 
        $addi_info->co_longitude = $request->getPost("longitude"); 
        $addi_info->co_adresse = $request->getPost("adresse"); 
        print_r($addi_info);die; 
        $checkuser=$this->getAddiinfoTable()->getAddiInfoByUserPin($user_pin); 
        if($checkuser[user_pin]==$user_pin){ 
         $this->getAddiinfoTable()->update($addi_info); 
+0

quelle date est le retour par $ data = get_object_vars (modèle $) ;, peut tu le montres? –

Répondre

0

Je pense que vous devriez créer une fonction qui retourne un tableau associatif du modèle lui-même.

Peut être une propriété de la classe "Addiinfo" être protégée/privée, donc vous devez obtenir toutes les valeurs de propriété du modèle de l'intérieur.

Celui-ci devrait être dans votre "Addiinfo" classe,

public function getArrayData() 
{ 
    return get_object_vars($this); 
} 

Ensuite, appelez en fonction de mise à jour

public function update($model) { 
     $data = $model->getArrayData(); 
     $id = (int) $model->id; 
     $this->tableGateway->update($data, array('id' => $id)); 
    } 
+0

Ça marche thnx frère –