symfony2无法设置setFlash消息

时间:2013-03-15 20:10:54

标签: php session symfony

我不能在我的普通控制器中执行此操作:

$this->setFlash('settings_successfully_uploaded', 'settings.upload.successfully'); 

我用google搜索解决方案这样做:

$this->get('session')->getFlashBag()->add('add_remove_friend', $flashMessageText);

但我想知道为什么我不能直接setFlash?因为在我的另一个看起来很相似的控制器中没有什么特别的我在那里使用我可以直接做到......那么..问题是什么?第二个控制器被覆盖FOSProfileController

2 个答案:

答案 0 :(得分:1)

在Symfony 2.0中,API就像您在第一个代码段中一样使用$this->setFlash。根据讨论here和相关的相关问题,决定这个键/值对不是一个好主意。

解决方案体现在您在第二个代码段中提到的新API $this->get('session')->getFlashBag()中。新API允许更大的灵活性。请参阅upgrade notes

答案 1 :(得分:0)

你确定第二个控制器被覆盖了FOSProfileController吗?不延长? 我想你在调用$ this-> setFlash()期间调用父方法。在其他FOS包中,我看到了setFlash()方法的实现。

请检查专利等级。