Laravel 5 分页器 - 缺少项目范围(显示 x 个,共 x 个)
Laravel 5 Paginator - Item Ranges missing (Showing x of x )
我正在从 Laravel 4 升级到 Laravel 5,并且注意到我无法再对分页器对象调用 getFrom()
或 getTo()
。
我在源代码 (Illuminate\Pagination\Pagintor.php
) 中看到,与 L4 相比,它不再具有 protected function calculateItemRanges()
。我在这里错过了什么吗?如何显示范围,例如Now showing x of x
现在 laravel 5?这是我现在必须自己添加的东西吗?为什么首先将其删除?
新方法称为 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;
}
我会说 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 中就此事提出了修改建议。
我正在从 Laravel 4 升级到 Laravel 5,并且注意到我无法再对分页器对象调用 getFrom()
或 getTo()
。
我在源代码 (Illuminate\Pagination\Pagintor.php
) 中看到,与 L4 相比,它不再具有 protected function calculateItemRanges()
。我在这里错过了什么吗?如何显示范围,例如Now showing x of x
现在 laravel 5?这是我现在必须自己添加的东西吗?为什么首先将其删除?
新方法称为 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;
}
我会说 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 中就此事提出了修改建议。