我将用户“喜欢”保存为与 Post 对象的关系,就像在文档中一样。
$user = ParseUser::getCurrentUser();
$post= new ParseObject("Post", $the_post_id);
$relation = $user->getRelation("likes");
$relation->add($post);
$user->save();
到目前为止效果很好。
现在我想知道如何查询帖子并计算有多少用户喜欢每个帖子。我不想在循环中为每个帖子运行单独的查询。
我还想知道当前用户是否也喜欢查询中的每个帖子。同样,绝对希望避免在循环中进行多个查询。
这可能吗?
我当前的帖子查询:
$query = new ParseQuery("Post");
$posts = $query->find();
[...] 计算有多少用户喜欢每个帖子 [...]
创建一个喜欢计数器Post 类中的字段,并在每次以“喜欢”关系添加/删除帖子时更新它。您会在不止一个地方发现这一建议(例如,here https://stackoverflow.com/a/23558421/1836314 and here https://stackoverflow.com/a/24758020/1836314).
使用解析的增量 http://parseplatform.github.io/parse-php-sdk/classes/Parse.ParseObject.html#method_increment方法(具有正值或负值)以原子方式更新计数器。
[...]了解当前用户是否喜欢每个帖子[...]
如果没有多次查询,这很难。您知道获得用户喜欢的帖子很容易:
$postsLiked = $relation->getQuery()->find();
您还可以设法获得以下帖子are not与用户处于“喜欢”关系。您可以尝试使用此类信息,但您必须接受脚本简单性的降低以及可能存在的不准确性(请记住,使用单个 Parse 查询无法检索超过 1000 个结果)。您可能会发现最好仅在单个帖子视图中将信息显示为详细信息(也可以根据与单个帖子条目相关的输入事件或根据视口内条目的当前可见性通过 AJAX 动态获取信息)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)