【问题标题】:Bootstrapping and accessing session variables in Zend Framework在 Zend Framework 中引导和访问会话变量
【发布时间】:2011-07-07 04:43:07
【问题描述】:

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

你想知道是什么原因造成的?

非常感谢

【问题讨论】:

    标签: php zend-framework session zend-session


    【解决方案1】:

    要将会话变量返回到您的控制器中,您还需要执行以下操作:

    $sessionUser = new Zend_Session_Namespace('sessionUser');
    

    【讨论】:

    • 该死,你打字比我快。 ;-)
    • 噢!我假设在 Bootstrap 中定义的变量将使其可用于所有控制器。感谢您的帮助。
    【解决方案2】:

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

    您必须先初始化此类变量,然后才能为其赋值。把它放在你的控制器中:

     $sessionUser = new Zend_Session_Namespace('sessionUser');
    

    【讨论】:

    • 感谢 Richard,现在通过将分配插入控制器来进行排序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多