我将用户“喜欢”保存为与Post对象的关系,就像在文档中一样。
$user = ParseUser::getCurrentUser();
$post= new ParseObject("Post", $the_post_id);
$relation = $user->getRelation("likes");
$relation->add($post);
$user->save();
到目前为止,此工作正常。
现在我想知道如何查询帖子,并且还要计算每个帖子的用户数量。我不想在每个帖子的循环中运行单独的查询。
我还想知道CurrentUser是否也喜欢查询中的每个帖子。同样,绝对希望避免在循环中进行多个查询。
这可能吗?
我当前的帖子查询:
$query = new ParseQuery("Post");
$posts = $query->find();
答案 0 :(得分:5)
[...]拉出每个帖子[...]
的用户数量
在Post类中创建 likes counter 字段,并在每次在" like"中添加/删除帖子时更新它。关系。您会在多个位置找到此建议(例如,here和here)。
使用Parse的increment方法(带正值或负值)以原子方式更新计数器。
[...]知道CurrentUser是否喜欢每个帖子[...]
如果没有多个查询,这很难。您知道很容易获得用户喜欢的帖子:
$postsLiked = $relation->getQuery()->find();
您还可以设法在"喜欢"中获取不的帖子。与用户的关系。您可以尝试使用此类信息,但是您必须接受脚本中简化性的降低,以及可能的不准确程度(请记住,您只能通过单个检索获得超过1000个结果解析查询)。您可能会发现最好只在单个帖子视图中将信息显示为详细信息(也可以在与单个帖子条目相关的输入事件或根据视口内条目的当前可见性时通过AJAX动态获取信息)。