Laravel 5.2 应用程序。
我的控制器中有一个函数,它使用 order by 子句查询我的数据库,然后我对其进行分页。
public function foo() {
$results = DB::orderBy('name', 'desc')->paginate(15);
return view('index', ['results' => $results]);
}
索引.blade.php
@foreach ($results as $result)
<tr>
<td>{{ //current $result position is what I need }}</td>
<td>{{ $result->name }}<td>
//etc...
</tr>
@endforeach
如何输出当前的行顺序迭代?
e.g.
Rank | name | //page 1
1 bob
2 john
3 katie
Rank | name | //page 2
4 dave
5 michael
6 ruben
通常我只会输出id
但由于我有一个 orderBy 子句,ID 将无法正确反映当前排名。如果我做类似的事情for()
循环,然后当我转到下一页时,它会将第二页上的第一个结果重置为排名 1,即使它是下一页。
Laravel 有实现这一目标的具体方法吗?我浏览了文档,但找不到我要找的东西。
我能够比通过提供的建议更优雅地做到这一点firstItem()
method.
public function foo() {
$results = DB::orderBy('name', 'desc')->paginate(15);
$rank = $results->firstItem();
return view('index', ['rank' => $rank, 'players' => $players]);
}
index.blade.php
@foreach ($results as $result)
<tr>
<td>{{ $rank++ }}</td>
<td>{{ $result->name }}<td>
//etc...
</tr>
@endforeach
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)