Ich habe Logik in einem Controller, der ein Array namens $ exclude erstellt.Laravel 5.4 whereNotIn scheinbar nicht funktioniert
Mit dd für $ schließe ich bekommen:
array:4 [▼
0 => 2
1 => 3
2 => 4
3 => 5
]
was richtig ist.
Ich möchte diejenigen, die aus einem Ergebnis auszuschließen, so habe ich:
$potype = DB::table('potypes')
->whereNotIn('id',[$exclude])
->get();
aber wenn ich die Abfrage diese Elemente enthalten sind, mit Ausnahme des ersten in der Anordnung ausgeführt werden. So ermöglichte ich die Abfrage Protokoll mit
DB::enableQueryLog();
und lief
dd(DB::getQueryLog());
mit dem Ergebnis der
array:1 [▼
0 => array:3 [▼
"query" => "select * from `potypes` where `id` not in (?)"
"bindings" => array:4 [▼
0 => 2
1 => 3
2 => 4
3 => 5
]
"time" => 0.67
]
]
Die Tabelle hat 8 Aufzeichnungen aber die Abfrage ausgeführt wird 7 Rückkehr nur ommiting die erste der Liste:
Collection {#621 ▼
#items: array:7 [▼
Wenn ich implodieren verwenden
$ ex = implodieren (' 'schließt $) und die Abfrage zu ändern -> whereNotIn (' id', [$ ex]) ich das gleiche Ergebnis - 7 Eintragungen nur die erste in der Liste wird ignoriert.
Ist das ein eloquenter Fehler oder ich?
Ich habe - Error Invalid argument für foreach geliefert() –
@JimElliott '' 'return dd ($ potype);' '' zu überprüfen, ob Sie mit der rechten Abfrage-Ergebnisse zu erhalten, wo ist foreach-Code? –