校验与消息 · 第 9 题,共 12 题
一个不使用 Extbase 的后台模块应在保存后显示消息“已保存”。如何创建该消息?
有 1 个正确答案。 中等
显示答案
答案
- C 创建一个带 ContextualFeedbackSeverity::OK 的 FlashMessage,并通过 FlashMessageService::getMessageQueueByIdentifier() 将其加入默认队列
解析
addFlashMessage() 属于 Extbase 的 ActionController。不使用 Extbase 时,通过依赖注入获取 FlashMessageService,不带参数调用 getMessageQueueByIdentifier()(默认队列 core.template.flashMessages),再用 enqueue() 或 addMessage() 传入消息。如果消息需要在重定向后保留,创建时要将 storeInSession 设为 true。如果模块使用 ModuleTemplate,$view->addFlashMessage() 更简短,且使用同一个队列。