PHP中的持久存储(Data_Registry类)

时间:2012-08-09 15:26:32

标签: php expressionengine

我正在使用这个库:http://code.google.com/p/data-registry/和ExpressionEngine系统。

我在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);

两个值均为空白。

我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

来自Waygood的评论:

“如果启用了全局持久性,则会自动加载所有名称空间”,因此我假设您必须使用Data_Registry :: setPersistence(TRUE,TRUE) - > restoreNameSpace();在模板上?除非您将其设置为默认参数