How to convert Zend Framework getResultRowObject to an array

public function loginAction() { $auth = Zend_Auth::getInstance(); $DB = Zend_Db_Table_Abstract::getDefaultAdapter(); $request=$this->getRequest(); $authAdapter = new Zend_Auth_Adapter_DbTable($DB); $authAdapter->setTableName('user') ->setIdentityColumn('uname') ->setCredentialColumn('password'); $uname = $request->getParam('uname'); $pass = $request->getParam('password'); $authAdapter->setIdentity($uname); $authAdapter->setCredential($pass); $result = $authAdapter->authenticate($authAdapter); $this->view->assign('auth',$result); if($result->isValid()) { $data = $authAdapter->getResultRowObject(null,'pass'); $auth->getStorage()->write($data); //$this->view->assign('dbdata',$data); $userInfo = new Zend_Session_Namespace('userInfo'); $userInfo->userType = 'admin'; //$this->_redirect('/admin/adminhome'); } else { $this->_redirect('/admin/index?fail=true'); } $data = $authAdapter->getResultRowObject(null,'pass'); 

Here $data will return the object as follows:

 stdClass Object ( [id] => 12 [uname] => user [password] => user [type] => user ) 

I want to convert this to an array. Just tried the toArray() function, but in vain. My requirement is to check the user type as follows:

 if($data['type']=='admin'){ do something } else { do something } 

thanks

+4
source share
2 answers

To answer your question, use:

 $data = $authAdapter->getResultRowObject(null,'pass'); $anArray = (array) $data; 

Or easier:

 $data = (array) $authAdapter->getResultRowObject(null,'pass'); 

But you do not need to convert to an array. Just use the object directly:

 $data = $authAdapter->getResultRowObject(null,'pass'); if($data->type=='admin'){ do something } else{ do something } 
+7
source

You can use get_object_vars() :

 $array = get_object_vars($data); 

For multidimensional arrays, you need to wrap it in functon:

 function toArray($data) { if (is_object($data)) { $data = get_object_vars($data); } if (is_array($data)) { return array_map(__FUNCTION__, $data); } else { return $d; } } 
0
source

All Articles