我是Zend Framwork的新手。我写了一个登录动作如下:
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/');
}
}
当我浏览我的网络应用程序然后它的给定例外: 消息:没有数据库适配器 我不明白我在哪里使用数据库或phpmyadmin连接。
答案 0 :(得分:0)
可能是注册表对象中出现了一些问题。相反,您可以创建数据库连接时调用Zend_Db_Table_Abstract :: setDefaultAdapter($ db)而不是将其放入注册表。如果没有明确地给出数据库适配器,ZF中的大多数组件都会在那里查看。
答案 1 :(得分:0)
替换
$DB = $registry['rdvs'];
带
$DB = Zend_Db_Table::getDefaultAdapter();
我希望您在application.ini中正确设置数据库配置,如果没有那么
在application.ini的[production]部分中添加以下内容,并相应地设置值,如username,password,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