无法使用Zend_Registry

时间:2014-10-01 05:19:44

标签: zend-framework registry

我是ZendFramework的新手,需要帮助.. 我面临着关于Zend_Registry的问题。 我有一个AuthController,我在其中处理登录功能并在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'];

这会向$ userType返回NULL,但我需要personType。 提前谢谢......

2 个答案:

答案 0 :(得分:1)

按原样使用Zend_Registry。

写入注册表:Zend_Registry::set('personType', $str['person_type']);

从注册表中读取:Zend_Registry::get('personType');

编辑:好的,我检查了你的方式,它似乎也在起作用。从未见过它。

回到你的问题。我认为您的AuthController和PersonController不会在同一个PHP实例中调用。 Zend Registry仅在用户请求页面直到页面发送给用户时存储数据。在登录期间设置它时,它将不会在后续用户请求中包含此数据。 你需要使用session。

答案 1 :(得分:0)

实际上,zend注册表只会保留下一个请求的数据。你将不得不使用zend session而不是zend registry