首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Elgg中存储键值字典

在Elgg中存储键值字典
EN

Stack Overflow用户
提问于 2015-03-19 09:17:06
回答 1查看 63关注 0票数 1

我正在为Elgg开发一个插件,它可以跟踪从手机登录时发送给应用程序的设备in。为此,我想将这些设备in存储在数据库中,并使用ElggObjects。

这就是我现在要做的:

代码语言:javascript
复制
function initialize() {
     $androidTokens = elgg_get_entities(array(
          'type' => 'object',
          'subtype' => 'androidTokens',
          'limit' => 0
     ));
     $iosTokens = elgg_get_entities(array(
          'type' => 'object',
          'subtype' => 'iosTokens',
          'limit' => 0
     ));

     if ($androidTokens == 0) {
          $tokenObject = new ElggObject();
          $tokenObject->subtype = 'androidTokens';
          $tokenObject->tags = array();
          $tokenObject->save();
     }

     if ($iosTokens == 0) {
          $tokenObject = new ElggObject();
          $tokenObject->subtype = 'iosTokens';
          $tokenObject->tags = array();
          $tokenObject->save();
     }
}

因此,这将生成两个ElggObjects,它们分别包含android和ios设备的in,并存储在元数据字段标记中。然而,这个标记数组不能再被检索。当我这样做的时候:

代码语言:javascript
复制
$tokenObject = elgg_get_entities(array(
                         'type' => 'object',
                         'subtype' => $os.'Tokens',
                         'limit' => 0
                    ));
               $tokens = $tokenObject->tags

令牌保持为空。有人知道我做错了什么吗?我是不是用错了Elgg对象?

EN

回答 1

Stack Overflow用户

发布于 2015-03-20 22:49:18

我认为你遇到问题的原因是elgg_get_entities返回了一个实体数组。

我假设每个token对象子类型中只有一个是正确的吗?(一个用于iOS,另一个用于安卓?)

如果是这样,我将修改您的代码,如下所示:

代码语言:javascript
复制
function initialize() {
 $androidTokens = elgg_get_entities(array(
      'type' => 'object',
      'subtype' => 'androidTokens',
      'limit' => 1 // only expecting one entity
 ));
 $iosTokens = elgg_get_entities(array(
      'type' => 'object',
      'subtype' => 'iosTokens',
      'limit' => 1 // only expecting one entity
 ));

 if (count($androidTokens) == 0) {
      $tokenObject = new ElggObject();
      $tokenObject->subtype = 'androidTokens';
      $tokenObject->tags = array();
      $tokenObject->save();
 }

 if (count($iosTokens) == 0) {
      $tokenObject = new ElggObject();
      $tokenObject->subtype = 'iosTokens';
      $tokenObject->tags = array();
      $tokenObject->save();
 }
}

稍后,在抓取实体时:

代码语言:javascript
复制
$tokenObject = elgg_get_entities(array(
                     'type' => 'object',
                     'subtype' => $os.'Tokens',
                     'limit' => 1 // only grab one
                ));
$tokens = $tokenObject[0]->tags; // get tag data for first (and only) entity
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29135608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档