Ошибка Zend_Form :: populate () - PullRequest
0 голосов
/ 29 июля 2010

У меня тут какая-то проблема.Когда я пробую эту функцию, она возвращает эту ошибку:

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

Когда я использовал print_r (), чтобы найти значения 1-го аргумента, вывод был такой:Я знаю, что вводимый мной объект является массивом.Что может быть причиной этой проблемы?Модель

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;    
    }

Контроллер:

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

1 Ответ

1 голос
/ 29 июля 2010

Вы должны преобразовать Zend_Db_Table_Row в массив, используя toArray () , а затем перейти к populate () .

Zend_Db_Table_Row

Пример:

$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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...