我有一个使用此行在CMS上创建的申请表

{{block type="[MODULE]/[BLOCK]" template="[TEMPLATE]"}}

现在,当您提交表格并在顶部获取成功消息时,它会被缓存,因此无论我重新加载多少次或从另一页返回页面,成功消息仍然存在

这是一个问题,因为如果您多次提交表单,然后转到所有成功消息的登录页面,因此它们因其未输出而被堆积,并且由于无效而应输出的任何错误消息都可以做到同样的事情,我清除缓存或将其关闭的时刻很好

因此,我如何停止在CMS上使用全局消息的Magento缓存

有帮助吗?

解决方案

如果您使用的是扩展class mage_core_model_session_abstract的会话模型,那么您应该能够传递 真的 到getMessages功能。这将克隆准备返回它们以显示给用户的消息,然后从会话中清除它们,以便仅显示一次。

public function getMessages($clear=false)
{
    if (!$this->getData('messages')) {
        $this->setMessages(Mage::getModel('core/message_collection'));
    }

    if ($clear) {
        $messages = clone $this->getData('messages');
        $this->getData('messages')->clear();
        Mage::dispatchEvent('core_session_abstract_clear_messages');
        return $messages;
    }
    return $this->getData('messages');
}
许可以下: CC-BY-SA归因
scroll top