2014-12-22 1 views
0

로그인 양식을 만드는 방법을 배우고 있습니다. 사용자가 인증 된 경우 사용자를 홈 페이지로 리디렉션하면됩니다. 로그인에 실패하면 오류를 표시하십시오. 오류가 있습니다젠드 : 데이터베이스 어댑터 없음 현재 오류

No database adapter present 
Stack trace: 

#0 \Zend_Include\library\Zend\Auth\Adapter\DbTable.php(139): Zend_Auth_Adapter_DbTable->_setDbAdapter(NULL) 
#1 \application\controllers\AccountController.php(24): Zend_Auth_Adapter_DbTable->__construct(NULL) 

튜토리얼을 다시 읽었지만 코드는 동일하며 왜이 오류가 발생하는지 알 수 없습니다. 계정 컨트롤러에서

내 loginAction()

 $form = new Application_Model_FormLogin(array('action'=>'/account/login')); 

     // if the form is submitted 
     if ($this->getRequest()->isPost()){ 
      if ($form->isValid($this->_request->getPost())) { 

       $db = Zend_Db_Table::getDefaultAdapter(); 
       $authAdapter = new Zend_Auth_Adapter_DbTable($db); 
       $authAdapter->setTableName('accounts'); 
       $authAdapter->setIdentityColumn('email'); 
       $authAdapter->setCredentialColumn('pswd'); 
       $authAdapter->setCredentialTreament('MD5(?) and confirmed=1'); 

       $authAdapter->setIdentity($form->getValue('email')); 
       $authAdapter->setCredential($form->getValue('pswd')); 

       $auth = Zend_Auth::getInstance(); 
       $result = $auth->authenticate($authAdapter); 

       // did the user successfully login 
       $account = new Application_Model_Account(); 
       $lastLogin = $account->findByEmail($form->getValue('email')); 
       $lastLogin->last_login = date('Y-m-d H:i:s'); 
       $lastLogin->save(); 

       $this->_helper->flashMessenger->addMessage('You are logged in'); 
       $this->redirector('Index', 'index'); 

      }else{ 
       . . . 
      } 
     }else{ 
      . . . 
     } 

     $this->view->form = $form; 
    } 

답변

0

사용하기 전에 때라도을 시도 Zend_Db_Table :

$dbAdapter = Zend_Db::factory ('PDO_MYSQL', $objDbConfig); 
AbstractTable::setDefaultAdapter ($dbAdapter);