2012-08-09 104 views
0

我正在使用此庫:http://code.google.com/p/data-registry/和ExpressionEngine系統。PHP中的持久存儲(Data_Registry類)

我初始化並在EE插件像這樣設置數據:

Data_Registry::init('MYPAGE'); 
Data_Registry::setPersistence(TRUE,TRUE)->restoreNameSpace(); 
Data_Registry::set('MYPAGE_DATA',json_encode($data['result'])); 
Data_Registry::set('MYPAGE_LOGGEDIN',true); 

如果我然後用這個代碼記錄該值,它正確地示出的值。

$fp = fopen('login_model.txt', 'a'); 
fwrite($fp, "Data:".Data_Registry::init('MYPAGE')->get('MYPAGE_DATA'). "\n"); 
fwrite($fp, "Loggedin:".Data_Registry::init('MYPAGE')->get('MYPAGE_LOGGEDIN'). "\n"); 
fclose($fp); 

然而,試圖檢索使用此代碼模板中的這些值時:

$data  = Data_Registry::init('MYPAGE')->get('MYPAGE_DATA'); 
$loggedin = Data_Registry::init('MYPAGE')->get('MYPAGE_LOGGEDIN'); 
$fp  = fopen('login_model.txt', 'a'); 
fwrite($fp, "Data:".$data . "\n"); 
fwrite($fp, "Loggedin:".$loggedin . "\n"); 
fclose($fp); 

兩個值是空白。

我在這裏做錯了什麼?

+0

您是否正在刷新數據? Data_Registry是否要求您刷新/保存值?第三個代碼框與第二個代碼文件夾不同嗎? – MasterGberry 2012-08-09 15:34:15

+0

不,不要明確地衝洗。您可以刷新/保存,但不是必需的。不,相同的文件,只是附加。 – MB34 2012-08-09 15:37:21

+0

「如果啓用全局持久性,所有名稱空間都自動加載」,所以我假設你必須Data_Registry :: setPersistence(TRUE,TRUE) - > restoreNameSpace(); 在模板上?除非您已將其設置爲默認參數 – Waygood 2012-08-09 15:38:48

回答

0

從Waygood的評論:

「如果全球持續是有效的,所有的命名空間全自動裝」,所以我認爲你必須Data_Registry :: setPersistence(TRUE,TRUE) - > restoreNameSpace();在模板上?除非您已將其設置爲默認參數