如何设置用户状态?

时间:2013-11-07 19:24:26

标签: joomla joomla2.5

$app = JFactory::getApplication();
$app->setUserState('com_users.reset.user', $user->id);
$userId = $app->getUserState('com_users.reset.user');

echo $userId;

什么都不打印

echo $user->id;

将正确打印用户ID。

我如何设置用户状态?

我发现在libraries / joomla / application / application.php中,函数getUserState在if(!is_null($ registry))并且返回null时失败

public function setUserState($key, $value)
    {
        $session = JFactory::getSession();
        $registry = $session->get('registry');

        if (!is_null($registry))
        {
            return $registry->set($key, $value);
        }

        return null;
    }

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。我不确定是什么造成的。但是如果由于某种原因“注册表”会话变量不起作用,那么你可以像这样初始化它。它有效。

$session = JFactory::getSession();
$session->set('registry',   new JRegistry('session'));