Проблема входа в Zend - PullRequest
       6

Проблема входа в Zend

0 голосов
/ 22 сентября 2011

Я новичок в 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/');
    }

}

Когда я работаю над своим веб-приложением, оно получает исключение: Сообщение: нет адаптера базы данных. Я не понимаю, где яБаза данных difine или соединение phpmyadmin.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

заменить

$DB = $registry['rdvs'];

с

$DB = Zend_Db_Table::getDefaultAdapter();

Я надеюсь, что вы правильно настроили свою конфигурацию БД в application.ini, если нет, то

добавьте следующее в раздел [production] вашего application.ini и настройте соответствующие значения, такие как имя пользователя, пароль, имя базы данных

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 голосов
/ 22 сентября 2011

Вероятно, что-то напутано в объекте реестра.Вместо этого вы можете делать, когда создаете соединение с базой данных, вызывая Zend_Db_Table_Abstract :: setDefaultAdapter ($ db) вместо того, чтобы помещать его в реестр.Большинство компонентов в ZF будут искать там, если им не предоставлен адаптер базы данных.

...