2012-01-18 1 views
0

코드를 나는대로 :젠드 프레임 워크 zend_auth의 저장 장치에 (setTableName()에 주어진 테이블의 속성이 아닌) 변수를 추가

  $authAdapter = $this->getAuthAdapter(); 
      $authAdapter->setIdentity($username) 
         ->setCredential($password); 
      $auth = Zend_Auth::getInstance(); 

getAuthAdapter()는 다음과 같다 여기서

protected function getAuthAdapter() { 
    $dbAdapter = Zend_Db_Table::getDefaultAdapter(); 
    $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); 

    $authAdapter->setTableName('credentials') 
      ->setIdentityColumn('employee_id') 
      ->setCredentialColumn('password'); 


    return $authAdapter; 
} 

      $userInfo = $authAdapter->getResultRowObject(null, 'password'); 
      # the default storage is a session with namespace Zend_Auth 
      $authStorage = $auth->getStorage(); 
      $authStorage->write($userInfo); 

여기 테이블 이름이 지정된 credential을 사용했습니다.하지만 테이블 자격 증명의 속성이 아닌 auth_storage에 변수를 저장하고 싶습니다. 나중에이 변수를 해당 저장 공간에서 나중에 사용할 수 있습니다. 어떻게해야합니까? 끝난??

   $userInfo = Zend_Auth::getInstance()->getStorage()->read(); 
나는 다음과 같은 코드로 할 수

: 그때

   $var = new stdClass; 
       $userInfo->var = 'Variable'; 

라는 변수 $ var에 추가 할하지만 그것의 좋은 idea.Any 다른 솔루션을 생각 해달라고하면? 빠른 회신 해 주시기 바랍니다 긴급히 필요합니다. 미리 감사드립니다. 당신이 데이터베이스에서 다른 테이블에서 일부 데이터를 저장하려면

답변

0

당신은 인증 선택의 인스턴스를 얻고 그 테이블 (들)에 가입 할 수 있습니다 :

$authSelect = $authAdapter->getDbSelect(); 
$authSelect->join(TABLE, CONDITION, COLUMNS); 

$result = $auth->authenticate($authAdapter);