【问题标题】:Symfony: type error when using flash bag in controllerSymfony:在控制器中使用闪存包时出现类型错误
【发布时间】:2016-11-18 15:55:16
【问题描述】:
为了获取session的flash包并添加flash消息,在控制器中我调用:
$request->getSession()->getFlashBag()->addFlash(...);
(其中$request 是Request 的一个实例)
但我收到以下 IDE 类型错误:
在中找不到方法“getFlashBag”
null|\Symfony\Component\HttpFoundation\Session\SessionInterface
【问题讨论】:
标签:
php
symfony
session
typeerror
【解决方案1】:
问题是$request->getSession()返回一个SessionInterface,它不包含getFlashBag方法。
这就是 IDE 抱怨的原因,即使该方法返回的实际对象是具有 getFlashBag 方法的 Session 类的实例。
在控制器内部时,可以使用以下快速解决方案:
$this->addFlash(...);
代替:
$request->getSession()->getFlashBag()->addFlash(...);