我需要帮助来消除zend框架中toArray()
的致命错误。
致命错误:在非对象上调用成员函数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();
}
我该如何解决这个问题?
答案 0 :(得分:5)
您的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);