3

我已经在我的 Elgg 应用程序中安装了Members for Elgg 1.8插件,现在我正在编辑这个插件以显示从上次管理员登录到当前登录创建的所有用户。

但我没有从我写的查询中得到预期的结果。

这是我的index.php代码

 case 'lasttonow':
     $db_prefix = elgg_get_config('dbprefix');
     $joins = array("JOIN {$db_prefix}users_entity u on e.guid = u.guid");
     $time = time();
     $options['joins'] = $joins;
     options['wheres'] = "e.time_created >= u.prev_last_login";
     $options['order_by'] = "e.time_created DESC";

     $content = elgg_list_entities_from_metadata($options);
 break;

我不明白我在哪里做错了。

谢谢你

4

2 回答 2

3

构造的查询是说,“列出他们上次登录后创建的所有用户。” 那不会给你任何结果。

你想要做的是获取管理员的 prev_last_login (我假设当前登录的用户)并在你的查询选项中使用它:

$admin = elgg_get_logged_in_user_entity();
$options['time_created_lower'] = $admin->prev_last_login;
$options['order_by'] = "e.time_created DESC";
$content = elgg_list_entities_from_metadata($options);
于 2013-08-25T04:34:00.627 回答
2

我已经编辑了您的代码以满足您的要求。请尝试以下代码,您将得到您所期望的。您尝试做的是错误的,您尝试的查询将不会显示正确的结果,因为您尝试添加特定用户的上一个上次登录,就像您在上面的代码中提到的那样,实际上您应该使用任何上一个上次登录您已登录网站的用户。

case 'lasttonow':
                  $db_prefix = elgg_get_config('dbprefix');
                  $joins = array("JOIN {$db_prefix}users_entity u on e.guid = u.guid");
                  $admin = elgg_get_logged_in_user_entity();                            
                  $times =$admin->prev_last_login;                        
                  $options['joins'] = $joins;        
                  $options['wheres'] = "e.time_created >= {$times}";
                  $options['order_by'] = "e.time_created DESC";    
                  $content = elgg_list_entities_from_metadata($options);
                  break;
于 2013-08-27T10:30:12.667 回答