Typo3 extbase创建全局数组



我使用的是TYPO3 9.5.13版本。如果用户成功登录,我会将用户数据存储在控制器中。如果用户从任何视图返回到同一控制器,则之前保存在控制器中的用户信息将消失。看起来,每次用户回到控制器时,都会打开一个新的控制器实例。TYPO3中的PHP全局变量不起作用。

因此,我正在寻找一种方法,在控制器中始终可以获得一些数据。扩展是我自己的,还有模板和视图。所以如果必要的话,我可以做任何改变。

我目前看到的唯一方法是将用户数据发送到视图,然后从视图返回到控制器。但对于我所有的观点来说,这并不容易,也不是一种优雅的方式

你有什么建议吗?感谢您的支持!

您应该将用户数据存储在会话变量中。这些数据可以在全球范围内访问,TYPO3将为您管理它。它可用于客户端的每个请求,直到他注销或结束会话(终止浏览器…(

感谢Bernd,我找到了一个解决方案:

$GLOBALS['TSFE']->fe_user->setkey('ses','user',$Setup);
$GLOBALS['TSFE']->storeSessionData();

我在user下存储了一个数组。重要的是第二行,用于存储会话数据。通过下面的指令,我将其读入一个数组。

$user['user'] = $GLOBALS['TSFE']->fe_user->getKey("ses", "user" );

可以存储几个变量,当然也可以更改用户名。如果你给它写NULL,你可以清除:

$GLOBALS['TSFE']->fe_user->setkey('ses', 'user', NULL);
$GLOBALS['TSFE']->storeSessionData();

最新更新