登录功能从zend框架1升级到zf2

时间:2012-03-16 17:58:06

标签: zend-framework zend-framework2

我在ZF1登录控制器中有以下功能,工作正常但无法移植到ZF2请帮我这个功能与zf2一起工作

if ($this->_request->isPost() && $userForm->isValid($_POST)) {
        $data = $userForm->getValues();

    //set up the auth adapter
    // get the default db adapter
    $db = Zend_Db_Table::getDefaultAdapter();

    //create the auth adapter
    $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'users','username', 'password');

    //set the username and password
    $authAdapter->setIdentity($data['username']);
    $authAdapter->setCredential(md5($data['password']));

    //authenticate
    $result = $authAdapter->authenticate();
    if ($result->isValid()) {

        // store the username, first and last names of the user
        $auth = Zend_Auth::getInstance();
        $storage = $auth->getStorage();
        $storage->write($authAdapter->getResultRowObject(
            array('username' , 'first_name' , 'last_name', 'role')));

        return $this->_forward('index');
    } else {
        $this->view->loginMessage = "Sorry, your username or
            password was incorrect";
    }
}
$this->view->form = $userForm;`enter code here`

1 个答案:

答案 0 :(得分:2)

ZF2中最简单的方法是使用ZfcUser模块进行用户登录和注册。

或者,您需要重构以使用与Zend_Db具有非常不同的API的新Zend\Db组件。 不幸的是,从ZF2 beta 3开始,Zend\Auth尚未更新为使用新的Zend\Db组件,因此您需要对其进行大量修改或等到以后的版本。另外,请注意ZF2使用名称空间,因此您至少需要重构它。