gpt4 book ai didi

typo3 - 使用 Hook 在后端显示 flash 消息以某种方式不起作用

转载 作者:行者123 更新时间:2023-12-04 17:47:51 24 4
gpt4 key购买 nike

基本上:只要用户输入的值不是有效的 IPv4,我就想在 BE 中显示一条闪现消息。我想在一个钩子(Hook)中执行此操作,但仅使用 Typo3 文档中的代码来处理 flash 消息是行不通的,我这边似乎存在重大误解。到目前为止,这是我的代码:

<?php

namespace Cjk\Icingaconfgen\Hook;

class EvalHook {
function processDatamap_postProcessFieldArray($status, $table, $id, &$fieldArray, &$pObj) {

if (!filter_var($fieldArray[IPv4], FILTER_VALIDATE_IP)){

//here i want to put the flash message code

}
}
}
?>

使用此处文档中的代码:

$message = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Messaging\FlashMessage::class,
'My message text',
'Message Header', // [optional] the header
\TYPO3\CMS\Core\Messaging\FlashMessage::WARNING, // [optional] the severity defaults to \TYPO3\CMS\Core\Messaging\FlashMessage::OK
true // [optional] whether the message should be stored in the session or only in the \TYPO3\CMS\Core\Messaging\FlashMessageQueue object (default is false)
);

加上一行:

$message->render();

没用。我错过了什么?

最佳答案

您是否尝试过将 FlashMessage 添加到消息队列中?

use TYPO3\CMS\Core\Messaging\FlashMessageService;

// ... omitted some use statements


$objectManager = GeneralUtility::makeInstance(ObjectManager::class);

//...

$flashMessageService = $this->objectManager->get(lashMessageService::class);
$messageQueue = $flashMessageService->getMessageQueueByIdentifier();
$messageQueue->addMessage($message);

如果您在 Controller 中使用 flash 消息,则不需要该部分。

https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/FlashMessages/Index.html

关于typo3 - 使用 Hook 在后端显示 flash 消息以某种方式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47590844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com