呈现@WebProfiler / Collector / request.html.twig时出错“属性控制器不存在”

时间:2016-07-29 21:35:38

标签: php symfony-3.1

刚开始看到这个。调试工具栏无法加载。日志文件中的错误是:

  

[2016-07-29 08:49:48] request.CRITICAL:未捕获的PHP异常Twig_Error_Runtime:“属性”controller“和方法”controller()“,”getcontroller()“/”iscontroller“都没有()“或”__call()“存在并且在”@ WebProfiler / Collector / request.html.twig“第12行”at / Volumes“中的类”SiteBundle \ Library \ Session“中具有公共访问权限/Data01/VMShares/BeckComputerSystems/WarehouseWebUserInterface/WWUI/var/cache/dev/classes.php line 5481

让我感到困惑的是对我的自定义Session类的引用。我完全不知道为什么请求数据收集器会期望Session对象能够访问控制器。

如果我在Symfony \ Component \ HttpKernel \ DataCollector的serialize()方法中设置断点,我可以看到$ this-> data-> redirect是我的自定义Session类的对象。再一次,不知道为什么。

这仅在重定向时发生,仅在工具栏上发生。页面本身加载正常。

帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

原来这是我的坏 - 大惊喜: - )

我的自定义Session类为基本Session类添加了一个流畅的接口。

当我实现remove()方法时,我没有注意到基类返回已删除的值。我的实现丢弃了它并返回了Session。这导致RequestDataCollector :: collect()方法存储我的会话对象而不是sf_redirect的值。