2

我正在使用带有 WAMP 2.0 的 symfony 1.4 的 setFlash 和 hasFlash 方法

在本地使用我的 frontend_dev 应用程序,一切正常。但是在生产环境中,我的测试$this->forward404Unless($user->hasFlash('resultsArray'));失败了。

我认为默认情况下启用了 flash 方法。请问我该怎么做才能让它工作?

编辑:我发现了一个有趣的错误信息。

这是我的 filters.yml 文件

# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/12-Filters

rendering: ~
security:  ~

# insert your own filters here

cache:     ~
flash:     ~
execution: ~

在 frontend_prod.log 中,我有:

3 月 16 日 05:57:42 symfony [info] {sfPatternRouting} 匹配路由“主页”(/)为 / 参数数组('module' => 'main', 'action' => 'index',)
05 年 3 月 16 日:57:42 symfony [err] {sfParseException} 配置文件“D:\wamp\bin\php\symfony\symfony14\lib/config/config/filters.yml”指定类别“flash”缺少类键。

4

5 回答 5

1

您是否在重定向/转发上下文中调用executeShowResult操作?flash 的生命周期有限,在下一次请求后它将消失。显然resultsArray已被清除。

于 2010-03-16T10:33:29.697 回答
1

您在生产中生成了 404(网站图标或图像),这被视为对 404 操作(在重定向之后)清除闪存变量的请求。

于 2010-11-02T06:14:15.220 回答
0

不确定这是否是答案,但我的flashfilters.yml 文件中没有密钥,在 Symfony 1.4.3 应用程序中,自从从 Symfony 站点获取版本后,我还没有碰过它。您是否尝试过从 yml 文件中删除该行,清除缓存并重试?

于 2010-03-16T10:03:36.367 回答
0

我想知道您是否为产品启用了缓存?

如果你这样做了,并且正在缓存 with_layout (或者如果 flash 在动作模板中,则缓存相关动作),那么它将在后续视图中返回没有 flash 消息的缓存页面。

于 2010-03-16T23:10:04.187 回答
0

确保你有use_flash=true你的factories.yml

user:
  class: myUser
  param:
    timeout:         3600
    logging:         %SF_LOGGING_ENABLED%
    use_flash:       true
    default_culture: %SF_DEFAULT_CULTURE%    

一个相当古老的回应,但我希望对其他有同样问题的人有用。

于 2011-01-21T07:35:08.473 回答