Abfrage Laravel Wählen, Wobei Array
Diese Abfrage funktioniert nicht richtig, es zeigt nur 1 Zeile
$data = Post::select('id', 'name')
->whereIn('id', [$order])
->orderByRaw(\DB::raw("FIELD(id, $order)"))
->get();
aber dies funktioniert sehr gut, es zeigt alle Zeilen
$data = Post::select('id', 'name')
->whereIn('id', [1,2,3])
->orderByRaw(\DB::raw("FIELD(id, $order)"))
->get();
Danke!
InformationsquelleAutor Do Thanh Dat | 2016-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Abfrage ist Hier:-
Entfernen
[]
aus$order
.Für
WhereIn
Zustand zweite parameter sollte ein array sein. Also die$order
sollteVerwenden Sie nur das $order= array_values($request->all()); und (\DB::raw ("- FELD(id, ".implode(",", $order).")")
wie dieser $order = array_values($request->alle()) und \DB::raw ("- FELD(id, ".implode(",", $order).")")
Sorry, aber es funktioniert nicht
kann u schreiben o/t $request->alle() so können wir Debuggen.
InformationsquelleAutor Rakesh Kumar
Wenn Ihr
$order
ist ein array, ich denke, Sie sollten dies tun,whereIn('id', $order)
stattwhereIn('id', [$order])
P. S. In der offiziellen Dokumentation erwähnt, das zweite argument muss ein array sein:
Hier $keys=array_keys($request->all()); $order=join(", ",$keys);
Es funktioniert nicht : Array to string conversion
Hier Array ( [2] => 1 [3] => 4 [4] => 2 )
ja, ich habe versucht, und hatte Fehler-Arrays zu-string-Konvertierung
InformationsquelleAutor D.Dimitrioglo