在ZF中通过不同的操作访问会话变量时遇到问题。
以下是引导程序的内容:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initSession()
{
Zend_Session::start();
$sessionUser = new Zend_Session_Namespace('sessionUser');
}
}
我在IndexController中为$ sessionUser分配一个变量:
$sessionUser->userId = $res->userId;
$sessionUser->organisationId = $res->organisation_organisationId;
$sessionUser->forename = $res->forename;
尝试访问Administrator控制器中的变量:
$sessionUser->organisationId
然而我收到错误:
Notice: Undefined variable: sessionUser in /usr/local/zend/apache2/htdocs/SA1/application/controllers/AdministratorController.php on line 17 Notice: Trying to get property of non-object in /usr/local/zend/apache2/htdocs/SA1/application/controllers/AdministratorController.php on line 17
想法可能导致什么?
非常感谢
答案 0 :(得分:4)
要在控制器中恢复会话变量,您还需要执行以下操作:
$sessionUser = new Zend_Session_Namespace('sessionUser');
答案 1 :(得分:4)
嗯,你得到的错误是显而易见的。 $ sessionUser未定义。
您必须在为其赋值之前初始化此变量。把它放在你的控制器中:
$sessionUser = new Zend_Session_Namespace('sessionUser');