Caching Symfony cache正在破坏我的flash消息

Caching Symfony cache正在破坏我的flash消息,caching,symfony1,filter,Caching,Symfony1,Filter,Symfony项目中的Flash消息在执行操作后向网站用户提供反馈。它们通常仅在触发操作后显示一次页面加载。 不幸的是,当启用“缓存”时,我的消息无法显示,只返回页面的缓存版本 在一个实例中,缓存了一个包含消息的页面版本,这意味着消息将显示给所有人 是否可以让缓存知道闪存消息?没有自动方法让symfony处理此问题 最好/最常见的解决方案是禁用所有缓存操作的with_布局,或者仅禁用必须显示flash消息的这些特定操作。这通常可以解决这个问题,因为大多数人倾向于从布局而不是在缓存的模板中输出fl

Symfony项目中的Flash消息在执行操作后向网站用户提供反馈。它们通常仅在触发操作后显示一次页面加载。

不幸的是,当启用“缓存”时,我的消息无法显示,只返回页面的缓存版本

在一个实例中,缓存了一个包含消息的页面版本,这意味着消息将显示给所有人


是否可以让缓存知道闪存消息?

没有自动方法让symfony处理此问题


最好/最常见的解决方案是禁用所有缓存操作的with_布局,或者仅禁用必须显示flash消息的这些特定操作。这通常可以解决这个问题,因为大多数人倾向于从布局而不是在缓存的模板中输出flash消息。

有两个选项,benlumley提到的一个选项:

  • 关闭_layout,使布局不是缓存文件的一部分。但这并不能防止您的问题,因为您的flash渲染在动作模板内
  • 每当设置和显示闪存时,请清除缓存的选定部分(请记住在显示闪存后清除它,否则,您将再次遇到其他用户看到闪存的问题。或者,您可以选择在显示闪存的页面上以编程方式禁用缓存一次(请参阅上的symfony文档)。在我看来,最后一个选项是非常不可靠的,应该作为最后的手段使用,因为例如重定向可能会把事情搞砸
  • 无论你怎么做,都没有最佳的解决方案可以让你的flash消息神奇地绕过缓存