Typo3 extbase создать глобальный массив - PullRequest
0 голосов
/ 27 марта 2020

Я использую версию TYPO3 9.5.13. Если пользователь делает успешный вход, я сохраняю данные пользователя в контроллере. Если пользователь возвращается из любого представления к тому же контроллеру, информация пользователя, сохраненная в контроллере ранее, исчезает. Таким образом, кажется, что каждый раз, когда пользователь возвращается к контроллеру, открывается новый экземпляр контроллера. PHP глобалы в TYPO3 не работают.

Поэтому я ищу способ, чтобы некоторые данные всегда были доступны в ncontroller. Это мое собственное расширение, а также шаблоны и представления. Поэтому, если необходимо, я могу внести любые изменения.

Единственный способ, которым я сейчас вижу, - это отправка пользовательских данных в представления и из представлений обратно в контроллер. Но это не легко возможно для всех моих взглядов, а также не элегантный способ сделать.

Есть ли у вас какие-либо предложения? Спасибо за вашу поддержку!

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Спасибо Бернду, я нашел решение:

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

Я сохранил массив под пользователем. Важна вторая строка для хранения данных сеанса. С инструкциями ниже я прочитал это в массив.

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

Можно сохранить несколько переменных и, конечно, изменить имя пользователя. Вы можете очистить, если напишите в него значение NULL:

$GLOBALS['TSFE']->fe_user->setkey('ses', 'user', NULL);
$GLOBALS['TSFE']->storeSessionData();
0 голосов
/ 01 апреля 2020

Вы должны хранить свои пользовательские данные в переменной сеанса. эти данные могут быть приняты по всему миру, и TYPO3 будет управлять ими для вас. он доступен для каждого запроса клиента до тех пор, пока он не выйдет из системы или не завершит сеанс (не завершит работу браузера, ...)

...