2014-10-01 3 views
1

Я новичок в ZendFramework и нуждаюсь в помощи .. У меня проблема с Zend_Registry. У меня есть AuthController, в котором я логин функциональность обрабатываются и установить тип лица в Zend_Registryне может использовать Zend_Registry

$reg = Zend_Registry::getInstance(); 
$reg['personType'] = $str['person_type']; 

, когда я получаю значение внутри AuthController она отлично работает

$reg = Zend_Registry::getInstance(); 
$userType = $reg['personType']; 

Я также PersonController, в которой я имею дело с функция изменения пароля, в котором мне нужно personType также, но когда я делаю

$reg = Zend_Registry::getInstance(); 
$userType = $reg['personType']; 

Это возвращает NULL до $ UserType, но я требуется personType здесь. благодарит заранее ...

ответ

0

Фактически zend реестр будет хранить данные только для следующего запроса. вам нужно будет использовать zend-сессию вместо zend-реестра

1

Используйте Zend_Registry как следует.

Для записи в реестре: Zend_Registry::set('personType', $str['person_type']);

Для чтения из реестра: Zend_Registry::get('personType');

EDIT: OK я проверил свой путь, и это, кажется, работает тоже. Никогда не видел этого раньше.

Так что возвращайтесь к своей проблеме. Я думаю, что ваш AuthController и ваш PersonController не вызываются в этом же экземпляре PHP. Zend Registry хранит данные только со времени, когда пользователь запрашивает страницу, пока страница не будет отправлена ​​пользователю. Когда вы установите его во время входа в систему, он не будет иметь эти данные при последующих запросах пользователя. Для этого вам нужно использовать сеанс.

+0

Я также попробовал метод, о котором вы говорили. спасибо, я ценю, что мне нужно использовать сеанс –

Смежные вопросы