Zend中authenticate()操作的问题

时间:2014-09-15 10:18:43

标签: php zend-framework netbeans

我正在使用带有Xampp 3.2.1的Netbeans 8.0,我收到一条错误消息“应用程序错误”,我已经找到问题所在,正如您在代码段中看到的那样:

public function loginAction() {

    $users = new Application_Model_DbTable_User();
    $form = new Application_Form_Login();
    $this->view->form = $form;
    if ($this->getRequest()->isPost()) {
        if ($form->isValid($_POST)) {
            $data = $form->getValues();
            $auth = Zend_Auth::getInstance();
            $authAdapter = new Zend_Auth_Adapter_DbTable($users->getAdapter(), 'users');
            $authAdapter->setIdentityColumn('username')->setCredential('password');
            $authAdapter->setIdentity($data['username'])->setCredential($data['password']);

            $result = $auth->authenticate($authAdapter); // <- The problem is here
            $dump = $result->getCode();
            var_dump($dump);
            die;

            if ($result->isValid()) {
                $storage = new Zend_Auth_Storage_Session();
                $storage->write($authAdapter->getResultRowObject());
                $this->_redirect('Authentification/login');
            } else {
                $this->view->errorMessage = "Invalid username or password!";
            }
        }
    }
}

我是Zend的新手并且无法弄清楚如何解决这个问题,有没有更好的方法来解决这个问题而不是var_dump?我已经尝试过xdebug但无法让它适用于我的项目。

1 个答案:

答案 0 :(得分:1)

首先,你必须通过config / application.ini

打开显示错误

检查[生产]和[开发:生产]阶段中的这三行必须设置为1:

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

因此,您会收到有关异常或任何其他错误的正确错误消息。