2016-07-23 75 views
0

我有查询与laravel返回我的结果和paginate()在最后,问题是当我foreach它收集数组中的所有id我只获得第一页。Laravel 5,分页结果foreach获取所有ID

有没有办法让分页之前得到那些所以我不必运行查询两次?

$clients = Client::apply($data, $dataArray)->ModelJoinCall()->orderBy($this->sortby, $this->orderby)->paginate(30); 

回答

0

有没有办法做到这一点,因为PAGINATE是使用SQL限制检索DATAS,让我们假设你是在一个页面中,您将检索前30条记录从数据库中,接下来如果你在第二页,那么你会从数据库中获得30到60条记录。

有没有麻烦有另一个SQL来获取所有ID。

或者如果你的数据库不会有太多的数据。你可以检索他们所有在一个页面中,并使分页效果使用JavaScript和HTML

+0

以及我可以在另一个查询中获得ids,但它是缓慢的,因为是100k行,并有很多过滤器 – kuna

+0

可以这个ids收集之前paginate( )? – kuna

+0

只有30条记录,如果您使用paginate –