加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何将Zend Framework getResultRowObject转换为数组

发布时间:2020-12-13 17:42:06 所属栏目:PHP教程 来源:网络整理
导读: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') -setIden
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');

这里$data将返回一个这样的对象:

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

我想将其转换为数组.刚尝试过Array()函数但是徒劳无功.我的要求是检查用户类型如下:

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

谢谢

解决方法

要回答您的问题,请使用:

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

或者更简单:

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

但是您不需要转换为数组.只需直接使用该对象:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读