2012-12-31 75 views
3

我剛剛將我的應用程序從cakephp1.3遷移到了cakephp2.0。我有問題配置會話到數據庫。將CakePHP會話設置爲數據庫

我改變的會話配置在core.php中

Configure::write('Session', array(
    'defaults' => 'database', 
     'handler' => array(
     'model' => 'Session' 
     ) 
)); 

我有一個數據庫表中的會議。有什麼我錯過了嗎?當我在登錄上寫會話並重定向時,我可以很好地讀會話變量。但在頁面刷新時,會話被刪除。

+0

@cryptic它尚未解決..我仍在努力。刷新頁面時會丟失會話對象。 –

+0

你可以驗證當你設置會話值時,他們實際上是保存在數據庫中嗎? –

+0

我刪除了數據庫中所有存儲的會話,並試圖登錄創建新記錄並存在會話標識。但是,當我刷新我失去會話對象中的信息 –

回答

5

從我的理解,你要使用Cake的默認數據庫會話處理,並且不使用自定義的處理器型號,如果是這樣:

設置這些配置選項,蛋糕在app/config/core.php使用數據庫會話:

Configure::write('Session', array(
    'defaults' => 'database' 
)); 

確保您要使用創建正確的表的數據庫運行這一點,因爲蛋糕將存儲會話有:

CREATE TABLE cake_sessions (
    id varchar(255) NOT NULL default '', 
    data text, 
    expires int(11) default NULL, 
    PRIMARY KEY (id) 
); 
+1

謝謝!我在Cake 2.x食譜的任何地方都找不到這個參考。我確實找到了這個https://github.com/cakephp/docs/pull/612,所以現在看起來這是在某人的雷達上。我也能夠在DatabaseSession.php中看到這些字段,但我從來沒有想過'數據'必須是'文本'而不是'blob'。 –