2017-09-13 76 views
0

我找遍了计算器,我找不到任何解决这个“简单的问题” ......的Symfony会话总是空

这里是东西:

/** 
* @Route("/", name="default_index") 
*/ 
public function indexAction(Request $request) 
{ 
    $this->get("session")->set("test", "1"); 
    var_dump($this->get("session")->get("test")); 
    //Prints 1 as expected 
    return $this->render("default/index.html.twig"); 
} 

/** 
* @Route("/about", name="default_about") 
*/ 
public function aboutAction() 
{ 
    //Does not print 1 as expected 
    var_dump($this->get("session")->get("test")); die; 
    return $this->render("default/about.html.twig"); 
} 

所以我的问题是,为什么我不能通过同一个控制器的两个方法获得会话存储?

感谢您的回答。

/*编辑*/

我看到了我的项目的/ var /会话文件夹,它是空的......

/* EDIT 2 */

好,我对Framework Bundle有一个不好的配置。把后面这在我config.yml所做的伎俩:

框架: 会议: handler_id的:session.handler.native_file 的save_path: '%kernel.project_dir%的/ var /会话/%kernel.environment%'

很抱歉的inconvenance ...

+0

你确定输出在你的PHP脚本死亡之前被刷新?你有没有尝试删除? – pvg

+0

试过了,没有工作... – Kirbydancer

回答

0

使用getSession()Request

$session = $request->getSession(); 

它得到一个SessionInterface。然后您可以获得属性:

$session->get('test'); 

您的aboutAction需要$ Request参数,并且您需要从索引路由重定向。

+0

也是null ...你认为这是来自我的配置,还是我没有得到有关Symfony会话的内容? – Kirbydancer

+0

你的'default/index.html.twig'文件是否有重定向到'default_about'路线?这是您获得相同会话价值的唯一方法。 –

+0

不,但现在我的config.yml已修复,即使未将重定向从default_index设置为default_about,我也可以从控制器的操作中获取会话。 – Kirbydancer