Zend_Session_Namespace не работает должным образом - PullRequest
1 голос
/ 31 марта 2011

После создания пространства имен, если я пытаюсь добавить к нему значение, переменная имеет конкретное значение, но не сеанс с пространством имен.Но если я создам некоторую переменную, которая является ключом для массива, и добавлю к нему значение, он будет сохранен в сеансе.Чтобы проиллюстрировать мою мысль:

public $submitUser;
public function init ()
{
    $this->submitUser = new Zend_Session_Namespace('submitUser');
    Zend_Session::rememberMe(60*60*24*7);
}

public function selectUserAccount ($username)
{        
    $returnArray = array(
        'name' => 'Man', 
        'surname' => 'With a surname',
        'username' => $username
    );
    $this->submitUser->user = $returnArray;
}

Вставляет в сеанс

'submitUser' => 
    array
      'user' => 
        array
          'name' => string 'Man' (length=3)
          'surname' => string 'With a Surname' (length=14)
          'username' => string 'jpeiseni' (length=8)

Но

public function selectUserAccount ($username)
{        
    $returnArray = array(
        'name' => 'Man', 
        'surname' => 'With a Surname',
        'username' => $username
    );
    $this->submitUser = $returnArray;
}

Не устанавливает переменные в сеансе

Это небольшая неприятность, с которой я, вероятно, могу смириться, но я хотел бы знать, есть ли причина, по которой у nmaspace нет значения для себя, или я что-то упустил?

Ответы [ 2 ]

4 голосов
/ 31 марта 2011

Да, это имеет смысл, то, что вы фактически делаете, это:

$this->submitUser = new Zend_Session_Namespace('submitUser');
$this->submitUser = $returnArray;

, поэтому вы создаете экземпляр Zend_Session_Namespace, а затем заменяете его совершенно другой переменной.

Возможно, что-то вроде этого имело бы больше смысла (в зависимости от того, для чего этот код):

$this->submit = new Zend_Session_Namespace('submit');
$this->submit->user = $returnArray;
3 голосов
/ 01 апреля 2011

попробуйте это:

public function selectUserAccount ($username)
{
    $returnArray = array(
        'name' => 'Man',
        'surname' => 'With a Surname',
        'username' => $username
    );
    $this->submitUser->applySet('array_merge', $returnArray);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...