2012-03-16 77 views
1

我在ZF1登錄控制器以下功能和工作正常,但不能口ZF2請幫我這個函數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` 

回答

2

在ZF2最簡單的方式工作是使用ZfcUser模塊進行用戶登錄和註冊。

或者,您需要重構以使用具有與Zend_Db完全不同的API的新Zend\Db組件。 不幸的是,從ZF2 beta 3開始,Zend\Auth尚未更新爲使用新的Zend\Db組件,因此您需要對其進行重大修改或等到更高版本發佈。另外,請注意ZF2使用命名空間,所以至少需要重構。