Laravel 5 - Eloquent - 分页结果
Laravel 5 - Eloquent - Paginate results
我正在为我的项目使用 Laravel 5,我有这个功能来对结果进行分页:
return $query->approvate()->with( 'voti' )->get()->sortBy( function ( $sort )
{
return $sort->voti->count();
}, 0, true );
我试过paginate()
但是我需要在分页前对集合的结果进行排序
在 Laravel 4 中有这个方法已在 Laravel 5 中删除:
$paginator = Paginator::make($items, $totalItems, $perPage);
如何在排序后对 L5 中的结果进行分页?
Laravel 无法对集合进行分页,但我写了一个帮助程序,因此您仍然可以这样做。
试试这个代码:
<?php
namespace Helpers;
use Illuminate\Support\Facades\Input;
class Paginator extends \Illuminate\Database\Eloquent\Collection {
private $pageNr;
private $perPage;
private $all;
public function paginate($perPage)
{
$this->perPage = (int) $perPage;
$this->pageNr = (int) $this->getCurrentPage();
$this->all = $this->all();
$this->items = array_slice($this->all(), $this->getCurrentPage()*$perPage-$perPage, $this->perPage);
return $this;
}
public function getCurrentPage()
{
$input = Input::get('page');
if($input==null)
return 1;
return $input;
}
public function getLastPage()
{
return(intval(ceil(count($this->all)/$this->perPage)));
}
public function getUrl($page)
{
return url('zoeken?page='.$page);
}
}
您可能需要更改 getUrl 函数。
用法:
$paginator = new \Helpers\Paginator(Collection $col);
$paginator->paginate(int $x);
我正在为我的项目使用 Laravel 5,我有这个功能来对结果进行分页:
return $query->approvate()->with( 'voti' )->get()->sortBy( function ( $sort )
{
return $sort->voti->count();
}, 0, true );
我试过paginate()
但是我需要在分页前对集合的结果进行排序
在 Laravel 4 中有这个方法已在 Laravel 5 中删除:
$paginator = Paginator::make($items, $totalItems, $perPage);
如何在排序后对 L5 中的结果进行分页?
Laravel 无法对集合进行分页,但我写了一个帮助程序,因此您仍然可以这样做。
试试这个代码:
<?php
namespace Helpers;
use Illuminate\Support\Facades\Input;
class Paginator extends \Illuminate\Database\Eloquent\Collection {
private $pageNr;
private $perPage;
private $all;
public function paginate($perPage)
{
$this->perPage = (int) $perPage;
$this->pageNr = (int) $this->getCurrentPage();
$this->all = $this->all();
$this->items = array_slice($this->all(), $this->getCurrentPage()*$perPage-$perPage, $this->perPage);
return $this;
}
public function getCurrentPage()
{
$input = Input::get('page');
if($input==null)
return 1;
return $input;
}
public function getLastPage()
{
return(intval(ceil(count($this->all)/$this->perPage)));
}
public function getUrl($page)
{
return url('zoeken?page='.$page);
}
}
您可能需要更改 getUrl 函数。
用法:
$paginator = new \Helpers\Paginator(Collection $col);
$paginator->paginate(int $x);