我确定这个问题只是由于错过了配置参数而且有一个简单的答案,但它让我疯了。一切都在我们的开发机器上按预期工作,但在我们的测试服务器上,我们有以下问题......
我们有一个Symfony2(版本2.5.7)应用程序。控制器设置会话变量以保存实体的ID。该应用程序然后触发Ajax请求,接收请求的控制器使用会话变量来决定要发回的内容。
在主控制器中,我们(检查$ page是有效实体后)
$this->get('session')->set('pageId', $page->getId());
然后在处理ajax的控制器中,我们有
$pageId = $this->get('session')->get('pageId');
在加载主控制器时,我可以看到已经设置了会话cookie,并且它具有'pageId'的预期值。我可以看到会话的详细信息存储在服务器上的app / session目录中,所以我非常确定会话正确设置。此文件夹上的权限是正确的,因此允许apache读取和写入该文件夹。但是,Ajax控制器报告$ pageId为false。如果我得到会话的ID;
$session = $this->get('session');
$session->start();
$sessionId = $session->getId();
我可以看到会话的ID与使用Ajax请求发送的cookie中的值匹配,并且匹配app / session目录中名为“sess_ {sessionId}”的文件。
我缺少什么?
答案 0 :(得分:0)
事实证明,手动删除app / session目录中的所有文件解决了这个问题。我不知道为什么,但它确实解决了它。