似乎Symfony 2.1不会自动启动会话。有没有办法让我自动启动它们?
我有一个应用程序需要用户的会话ID在几个动作中,但是没有办法知道哪个会首先需要它,所以我无法按需启动它,我需要它在我请求它时。
答案 0 :(得分:1)
根据我的理解,你需要在已经开始的会话的某个地方使用用户的会话ID,如果还没有会话开始,你想要这样做
在这种情况下,请尝试:
use Symfony\Component\HttpFoundation\Session\Session; // use sessions
class yourController extends Controller
{
public function yourAction()
{
$session = $this->getRequest()->getSession(); // Get started session
if(!$session instanceof Session)
$session = new Session(); // if there is no session, start it
$value = $session->getId(); // get session id
return $this->render('YourSampleBundle:your:your.html.twig',array(
'session_id' => $value
));
}
}
答案 1 :(得分:1)
您可以告诉框架会话配置(在config.xml中定义)自动启动会话。
然而,这是取决于。设计会议按需开始。
<framework:config>
<framework:session auto-start="true"/>
</framework:config>
我的问题是你为什么要初始化一个会话,除非你使用它?