渲染@WebProfiler/Collector/request.html.twig 时出错"Property controller does not exist"

Error "Property controller does not exist" when rendering @WebProfiler/Collector/request.html.twig

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

[2016-07-29 08:49:48] request.CRITICAL: Uncaught PHP Exception Twig_Error_Runtime: "Neither the property "controller" nor one of the methods "controller()", "getcontroller()"/"iscontroller()" or "__call()" exist and have public access in class "SiteBundle\Library\Session" in "@WebProfiler/Collector/request.html.twig" at line 12" at /Volumes/Data01/VMShares/BeckComputerSystems/WarehouseWebUserInterface/WWUI/var/cache/dev/classes.php line 5481

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

如果我在 Symfony\Component\HttpKernel\DataCollector 的 serialize() 方法中放置一个断点,我可以看到 $this->data->redirect 是我的自定义会话 class 的一个对象。同样,不知道为什么。

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

不胜感激。

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

我的自定义 Session class 向基本 Session class 添加了流畅的界面。

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

的值