2

通过 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;

并尝试访问管理员控制器中的变量:

$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

以及可能导致这种情况的想法?

非常感谢

4

2 回答 2

4

要在控制器中恢复会话变量,您还需要执行以下操作:

$sessionUser = new Zend_Session_Namespace('sessionUser');
于 2011-03-02T11:06:42.883 回答
4

好吧,你得到的错误是显而易见的。$sessionUser 未定义。

您必须在为其赋值之前初始化此类变量。把它放在你的控制器中:

 $sessionUser = new Zend_Session_Namespace('sessionUser');
于 2011-03-02T11:07:07.187 回答