2016-07-23 9 views
0

Ich habe Abfrage mit Laravel bekommen, die meine Ergebnisse zurückgibt und() am Ende Paginieren, ist Problem, wenn ich es foreach alle IDs in Array zu sammeln nur ich bekommen erste Seite.Laravel 5, Paginieren Ergebnisse foreach alle ids

Gibt es eine Möglichkeit die vor Paginieren zu bekommen, damit ich dont haben die Abfrage zweimal ausführen?

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

Antwort

0

Es gibt keine Möglichkeit, das zu tun, weil Paginieren ist Sql Limit verwenden Daten abrufen, nehmen wir an, Sie in Seite eins, sind Sie zunächst 30 Datensätze aus der Datenbank abgerufen werden, als nächstes, ob Sie in Seite zwei sind, dann erhalten Sie 30 bis 60 Datensätze aus der Datenbank.

gibt es kein Problem einen anderen SQL haben alle IDs zu erhalten.

oder wenn Sie Datenbank nicht zu viel Daten haben. Sie können sie alle auf einer Seite abrufen und eine Seitenumbruch Effekte verwenden Javascript und HTML

+0

gut ich kann IDs in einer anderen Abfrage, aber es ist langsam wie sind 100k Reihen, und hat viele Filter – kuna

+0

könnte diese IDs gesammelt werden vor paginate () – kuna

+0

nur 30 Datensätze, wenn Sie paginate verwenden –