我从Laravel 4升级到Laravel 5并注意到我无法再在Paginator对象上调用getFrom()
或getTo()
。
我可以在源代码(Illuminate\Pagination\Pagintor.php
)中看到,与L4相比,它不再具有protected function calculateItemRanges()
。我在这里错过了什么吗?如何显示范围,例如Now showing x of x
现在在laravel 5?这是我现在必须添加的东西吗?为什么它首先被删除了?
答案 0 :(得分:4)
新方法称为firstItem()
和lastItem()
。
/**
* Get the number of the first item in the slice.
*
* @return int
*/
public function firstItem()
{
return ($this->currentPage - 1) * $this->perPage + 1;
}
/**
* Get the number of the last item in the slice.
*
* @return int
*/
public function lastItem()
{
return $this->firstItem() + $this->count() - 1;
}
答案 1 :(得分:0)
我会说在给定这些函数的当前逻辑的情况下,如果没有检索到数据,则firstItem()和lastItem()可能会出现问题 。
例如,控制器中的代码:
$users = App\User::select('id')->paginate(10);
$begin = $users->firstItem();
$end = $users->lastItem();
return view('users/index')->with('begin',$begin)->with('end',$end);
视图中的代码:
<p>showing item {{$begin}} to {{$end}}</p>
结果,它显示错误的信息:显示第1项到第0项。
我已经在这个问题上创建了issue和laravel / framework的建议。