Добавить переменные (которые не являются атрибутами таблицы, указанной в setTableName ()) в хранилище zend_auth в рамках Zend Framework - PullRequest
0 голосов
/ 18 января 2012

У меня есть код:

            $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);

Здесь я использовал таблицу с именем credentials. Но я хочу сохранить переменную в auth_storage, которая не является атрибутом учетных данных таблицы. Так что я могу использовать эту переменную позже из этого хранилища, как указано ниже. Так, как это должно быть сделано ??

             $userInfo = Zend_Auth::getInstance()->getStorage()->read();

Я могу сделать с помощью следующего кода: Если я хочу добавить переменную с именем $ var, тогда

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

Но я не думаю, что это хорошая идея. Любое другое решение? Пожалуйста, ответьте быстро, как это срочно требуется. Спасибо заранее.

1 Ответ

0 голосов
/ 20 января 2012

Если вы хотите сохранить некоторые данные из другой таблицы из базы данных, вы можете получить экземпляр аутентификации select и присоединиться к этим таблицам:

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

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