我需要计算服务器评级。我有表server_user_likes
,其中存储了server_id
和user_id
,用户的服务器赞也存储在其中。1个赞= ServerUserLike
中的1行。使用server_id
和user_id
值
Schema::create('server_user_likes', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->id();
$table->unsignedBigInteger('server_id');
$table->string('user_id');
$table->index('server_id', 'server_user_likes_server_idx');
$table->foreign('server_id', 'server_user_likes_server_fk')->on('servers')->references('id');
$table->timestamps();
});
型号服务器用户类
public function server()
{
return $this->hasMany(Server::class);
}
我数了一下服务器点赞的数量
$ratingCounts = DB::table('server_user_likes')
->where('server_id', $server->id)
->count();
我统计了所有服务器的点赞总数
$allRatingCounts = DB::table('server_user_likes')
->count();
现在我需要计算服务器的评级,所谓的前10名减法将不会有帮助,因为服务器和用户可以增加每一次
p.s服务器与Post相同。
1条答案
按热度按时间k3bvogb11#
我建议使用这个查询来获得前10名的服务器/职位的基础上喜欢。
结果将是前10个服务器的列表[server_id,likes_count]
根据要求,这是一个示例,您可以在
top_server.blade.php
中显示前10名$loop->iteration
将显示从1到10的数字。https://tutsforweb.com/loop-variable-foreach-blade-laravel/