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;
}