Fla sh Сообщения TYPO3 с 6 по 7 обновление - PullRequest
0 голосов
/ 24 марта 2020

Я использовал следующий синтаксис в расширении TYPO3 6 exbase до перехода на 7:

$this->flashMessageContainer->flush();
$this->flashMessageContainer->getAllMessagesAndFlush();
$this->flashMessageContainer->add(Tx_Extbase_Utility_Localization::translate('undefined error', $this->extensionName));

В моем новом коде я бы использовал:

$this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('undefined error', $this->extensionName));  

Но я всегда получаю это ошибка:

Неустранимая ошибка: вызов функции-члена getFlashMessageQueue () для необъекта в /srv/www/typo3_src-7.6.32/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php on line 190

Есть какие-нибудь идеи по поводу этого поведения?

Спасибо и наилучшими пожеланиями,

Крис

1 Ответ

0 голосов
/ 28 марта 2020

(Отказ от ответственности: TYPO3 v7.6 достиг конца срока службы и больше не поддерживается)

Чтобы понять, что происходит, давайте посмотрим на исходный код (ссылаясь на сообщение об ошибке Вы отправили, проверяя AbstractController.php)

$this->controllerContext->getFlashMessageQueue()->enqueue($flashMessage);

https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_7-6/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php#L190

$this->controllerContext = $this->buildControllerContext();

https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_7-6/typo3/sysext/extbase/Classes/Mvc/Controller/AbstractController.php#L238

Таким образом, я предполагаю (!), Что вы переопределяете public function processRequest(...) в вашем контроллере приложения c, не вызывая parent::processRequest(...), что приводит к ситуации, когда $this->controllerContext не инициализируется.

...