2010-07-29 4 views
0

J'ai déjà une sorte de problème ici. Lorsque je tente cette fonction, il retourne cette erreur:Zend_Form :: populate() erreur

Catchable fatal error: Argument 1 passed to Zend_Form::populate() must be an array, object given, called in [..] 

Quand je print_r() pour trouver les valeurs du 1er argument, la sortie était la suivante:

Zend_Db_Table_Row Object ([_data:protected] => Array ([id] => 4 [title] => sd [name] => KG [picture] => http://xx/images/mny4r64mqb.png [show] => 1 [body] =>KB 
) [..] 

donc je sais que l'objet que j'ai entré est un tableau. Qu'est-ce qui pourrait causer ce problème? Le modèle

public function getUser($id) 
    { 
     $id = (int)$id; 
     $row = $this->fetchRow('id = ' . $id); 
     $row->toArray(); 
     if (!$row) { 
      throw new Exception("Could not find row $id"); 
     } 
     return $row;  
    } 

Le contrôleur:

$albums = new Admin_Model_Users(); 
        //print_r($albums->getUser($id)); 
        $form->populate ($albums->getUser ($id)); 

Répondre

1

Vous devez convertir Zend_Db_Table_Row à tableau en utilisant toArray() et passer ensuite à Populate().

Zend_Db_Table_Row

Exemple:

$bugs = new Bugs(); 
$row = $bugs->fetchRow($bugs->select()->where('bug_id = ?', 1)); 

// Get the column/value associative array from the Row object 
$rowArray = $row->toArray(); 

// Now use it as a normal array 
foreach ($rowArray as $column => $value) { 
    echo "Column: $column\n"; 
    echo "Value: $value\n"; 
+0

Merci, mais cela ne résout pas le problème. Il doit y avoir une sorte de pépin ici. Je vais essayer de résoudre ce problème –

+0

Placez votre code dans votre question. – NAVEED

+0

Ajout du modèle et de la partie contrôleur –