在OrderBy desc口才查询中获取行的排名,如何使该查询在laravel 5.5口才中起作用?) [英] Getting rank of row in OrderBy desc Eloquent query, How can i make this query work in laravel 5.5 eloquents?)

查看:134
本文介绍了在OrderBy desc口才查询中获取行的排名,如何使该查询在laravel 5.5口才中起作用?)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为用户提供Laravel hiscores分页表的排名编号。

I am trying to give my users a ranking number for my Laravel hiscores pagination table.

这是我发现可以正常使用的MySQL查询。
我正在尝试使它成为Laravel雄辩的查询。

This is the MySQL query I found working. I am trying to put make this work as a Laravel eloquent query.

select @i := @i + 1 ranking, t.*
from (select @i:=0) initvars, users t  ORDER BY wins DESC;

我的Laravel雄辩的查询现在是:

My Laravel eloquent query right now:

$ranking = User::orderBy('wins', 'DESC')->paginate(10);

提前谢谢!

推荐答案

有些迟到的答复,但我知道了。
这是我的解决方案。

A bit of a late response but I figured it out. This is my solution.

我首先将此功能添加到我的用户模态类中。

I First added this function to my User Modal Class.

public function getRanking(){
   $collection = collect(User::orderBy('wins', 'DESC')->get());
   $data       = $collection->where('id', $this->id);
   $value      = $data->keys()->first() + 1;
   return $value;
}

现在在我看来,我运行了getRanking()函数。

Now in my view I run my getRanking() function.

@foreach($ranking as $key => $rankings)
    <tr>
        <td>{{ $rankings->getRanking() }}</td>
        <td><a href="{{ route('profileView', ['id' => $rankings->id]) }}">{{ $rankings->username }}</a></td>
        <td>{{ $rankings->wins }}</td>
        <td>{{ $rankings->losses }}</td>
    </tr>
@endforeach

我正在使用数组键来确定用户排名。

I am using my array keys to determine the user ranking.

晚安!

这篇关于在OrderBy desc口才查询中获取行的排名,如何使该查询在laravel 5.5口才中起作用?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆