Symfony 2.1 似乎不会自动启动会话。有没有办法让我自动启动它们?
我有一个应用程序在多个操作中需要用户的会话 ID,但是无法知道哪个首先需要它,所以我不能按需启动它,我需要它在我请求时就在那里。
Symfony 2.1 似乎不会自动启动会话。有没有办法让我自动启动它们?
我有一个应用程序在多个操作中需要用户的会话 ID,但是无法知道哪个首先需要它,所以我不能按需启动它,我需要它在我请求时就在那里。
您可以告诉框架会话配置(在您的 config.xml 中定义)自动启动会话。
但是,这是不赞成的。设计的会话是按需启动的。
<framework:config>
<framework:session auto-start="true"/>
</framework:config>
我的问题是你为什么要初始化一个会话,除非你正在使用它?
据我了解,您需要在已经开始的会话中的某个地方使用用户的会话 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
));
}
}