Неустранимая ошибка при использовании toArray() в Zend Framework

Мне нужна помощь для устранения фатальной ошибки toArray() в рамках Zend.

Неустранимая ошибка: вызов функции-члена toArray() для необъекта

Я использую следующий код в моем контроллере

$obj     = new Admin_Model_UserMapper();
$where   = array('id = ?'=>$decryptId);
$data    = $obj->fetchAll($where);
//  $currentData = $data->current();
$dataArr = $data->toArray();


$form = new Admin_Form_UserForm();
$form->setAction('edit-user');
$form->populate($dataArr);

Я получаю фатальную ошибку в обоих условиях при использовании toArray() или же current(),

Я уже использовал следующий код, но не получаю никакого решения, и он выдает ту же ошибку:

$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select()->from('user')->where('id= ?',$decryptId);
$stmt = $select->query();
$result = $stmt->fetchAll();
if(count($result) > 0){
    $dataArr = $result->toArray();
} 

Как я могу решить это?

1 ответ

Решение

Ваш fetchAll не возвращает данных. Оберните это в условии...

$where = array('id = ?'=>$decryptId);
$data  = $obj->fetchAll($where);
if ($data->count()){
    //  $currentData = $data->current();
    $dataArr = $data->toArray();
}else{
    // no records found!
}

Проблема с вашим $where, вы не можете использовать его как массив ключ / значение. Используйте код ниже:

$where = $this->getAdapter()->quoteInto('id = ?', $decriptId);
Другие вопросы по тегам