2017-09-13 67 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