2016-05-08 6 views
0

Ich habe die folgende Abfrage:abrufen Eloquent Modelle in der ID geleitet, um bei

Post::whereIn('id', [3, 4, 1, 2])->paginate(10); 

Und das Ergebnis ich in der folgenden Reihenfolge ist (ids ich meine):

1, 2, 3, 4 ...

Ist es irgendwie möglich, das Ergebnis in der Reihenfolge zu erhalten, wie IDs an die Abfrage übergeben werden?

+0

Ihre Frage nicht beantworten, aber nur damit Sie wissen, falls Sie nicht wissen, warum dies geschieht: relationale Datenbanken haben nicht das Konzept "Ordnung". Sie erhalten keine geordnete Liste von Ergebnissen, sondern ein Tupel (Set) von Ergebnissen. – dabadaba

+0

Ja, ich dachte, das ist eine mySQL-Sache, anstatt Laravel .. Aber vielleicht gibt es eine Lösung .. – Bravi

+0

Überprüfen Sie [this] (http://stackoverflow.com/questions/26704575/laravel-order-by-where -in) raus, hilft es? – dabadaba

Antwort

0

Probabyl Sie müssen dann wie folgt in der Abfrage sortieren:

Post::whereIn('id', [3, 4, 1, 2])->orderBy('id')->paginate(10); 
0

Lese Laravel doc von diesem Link für worin() Sie alle Objekte Ihrer POST-Modell machen didnt ein Objekt zu machen und mit ihr arbeiten, ist es besser, auf diese Weise

https://laravel.com/docs/5.2/collections#method-wherein

+0

Das Problem ist, dass ich mit Query Builder arbeiten muss, nicht mit der Sammlung. Da die Sammlung nicht paginiert werden kann und mein Projekt die Dingo-API verwendet und einen Abfragegenerator-Paginator erwartet. – Bravi

+0

Whoops sry, ich habe noch nicht mit dieser API gearbeitet;) – hope

Verwandte Themen