Php 如何将Zend Framework getResultRowObject转换为数组
此处,Php 如何将Zend Framework getResultRowObject转换为数组,php,zend-framework,Php,Zend Framework,此处,$data将返回如下对象: public function loginAction() { $auth = Zend_Auth::getInstance(); $DB = Zend_Db_Table_Abstract::getDefaultAdapter(); $request=$this->getRequest(); $authAdapter = new Zend_Auth_Adapter_DbTable($DB); $a
$data
将返回如下对象:
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');
stdClass Object ( [id] => 12 [uname] => user [password] => user [type] => user )
我想把它转换成数组。刚刚尝试了toArray()
函数,但没有成功。我的要求是检查如下用户类型:
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');
stdClass Object ( [id] => 12 [uname] => user [password] => user [type] => user )
谢谢回答您的问题,请使用:
if($data['type']=='admin'){
do something
} else {
do something
}
或者更简单地说:
$data = $authAdapter->getResultRowObject(null,'pass');
$anArray = (array) $data;
但您不需要转换为数组。直接使用对象即可:
$data = (array) $authAdapter->getResultRowObject(null,'pass');
您可以使用:
对于多维数组,您需要将其包装在functon中:
$array = get_object_vars($data);