2011-09-22 107 views
0

我是Zend Framwork中的新成员。我下面写的登录一个动作给出:Zend登录问题

public function authAction() 
{ 
    $request = $this->getRequest(); 
    $registry = Zend_Registry::getInstance(); 
    $auth = Zend_Auth::getInstance(); 
    $DB = $registry['rdvs']; 
    $authAdapter = new Zend_Auth_Adapter_DbTable($DB); 
    $authAdapter->setTableName('user') 
       ->setIdentityColumn('user_name') 
       ->setCredentialColumn('password');  

    // Set the input credential values 
    $uname = $request->getParam('username'); 
    $paswd = $request->getParam('pwd'); 
    $authAdapter->setIdentity($uname); 
    $authAdapter->setCredential(md5($paswd)); 

    // Perform the authentication query, saving the result 
    $result = $auth->authenticate($authAdapter); 

    if($result->isValid()){ 
     //print_r($result); 
     $data = $authAdapter->getResultRowObject(null,'password'); 
     $auth->getStorage()->write($data); 
     $this->_redirect('/service/'); 
    }else{ 
     $this->_redirect('/index/'); 
    } 

}

当我朗姆酒我的web应用程序,然后其给定的异常: 消息:目前没有数据库适配器 我不明白的地方我difine数据库或phpmyadmin连接。

回答

0

更换

$DB = $registry['rdvs']; 

$DB = Zend_Db_Table::getDefaultAdapter(); 

我希望你已经安装在你的application.ini你的数据库配置正确如果没有的话

追加在[生产]部分以下你的application.ini并设置相应的值,如用户名,密码,dbname

resources.db.adapter = PDO_MYSQL 
resources.db.isDefaultAdapter = true 
resources.db.params.host = localhost 
resources.db.params.username = root 
resources.db.params.password = 
resources.db.params.dbname = myDbName 
+0

先生,我没有在我的application.ini文件中配置任何东西,请告诉我如何配置我的application.ini文件。我能做些什么改变? –

+0

打开你的application.ini –

0

这很可能是在注册表对象中搞砸了。你可以做的是,当你创建数据库连接调用Zend_Db_Table_Abstract :: setDefaultAdapter($ db)而不是把它放到注册表中。如果数据库适配器没有明确给出,那么ZF中的大多数组件都会在那里看到。