$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;
}
答案 0 :(得分:1)
我找到了解决方案。我不确定是什么造成的。但是如果由于某种原因“注册表”会话变量不起作用,那么你可以像这样初始化它。它有效。
$session = JFactory::getSession();
$session->set('registry', new JRegistry('session'));