Parse.com PHP SDK获取对象的用户关系


Parse.com PHP SDK Get User Relations for Object

我将用户"Likes"保存为与Post对象的关系,就像在文档中一样。

$user = ParseUser::getCurrentUser();    
$post= new ParseObject("Post", $the_post_id);
$relation = $user->getRelation("likes");
$relation->add($post);
$user->save();

到目前为止,这还可以。

现在我想知道如何查询帖子,并统计每个帖子的点赞用户数量。我不想在每个Post的循环中运行单独的查询。

我也想知道CurrentUser是否也喜欢查询中的每个帖子。再次强调,一定要避免在一个循环中进行多个查询。

这可能吗?

我当前的帖子查询:

$query = new ParseQuery("Post");
$posts = $query->find();

〔…〕拉计数有多少用户喜欢每个帖子〔…〕

在Post类中创建点赞计数器字段,并在每次以"点赞"关系添加/删除Post时更新该字段。你会在不止一个地方(例如,这里和这里)找到建议
使用Parse的增量方法(具有正值或负值)以原子方式更新计数器。

[…]知道CurrentUser是否喜欢每个帖子[…]

如果没有多个查询,这很难做到。你知道很容易得到用户喜欢的帖子:

$postsLiked = $relation->getQuery()->find();

您还可以设法获得与用户没有"点赞"关系的帖子。您可能会尝试使用这类信息,但您必须接受脚本中简单性的降低,以及可能的不准确程度(请记住,一个Parse查询不能检索到1000多个结果)。您可能会发现,最好只将信息显示为单个帖子视图中的详细信息(也可以在与单个帖子条目相关的输入事件时通过AJAX动态获取信息,或者取决于视口中条目的当前可见性)。