Vorbei an Wert als array in Where-Klausel in Laravel

Ich habe ein array in $qids als
[{"qid":1},{"qid":2},{"qid":3},{"qid":4}], Jetzt möchte ich, um Zeilen aus der Datenbank passende diese qid Wert. Ich arbeite auf meinem Laravel Projekt und die where-Klausel, die ich verwende, ist wie folgt

$questions = Question::where(function($q) use ($qids){
    foreach($qids as $key => $value){
        $q->where($key, '=', $value);
    }
})->get();

Dieser gibt mir eine Fehlermeldung

*SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'where clause' (SQL: select * from `questions` where (`0` = {"qid":1} and `1` = {"qid":2} and `2` = {"qid":3} and `3` = {"qid":4}))*

Wie ich sehen kann, in der Fehler-Zeile

where (`0` = {"qid":1} and `1` = {"qid":2} and `2` = {"qid":3} and `3` = {"qid":4})

ist es unter 0, 1, 2, 3 Schlüssel und die ganze {"qid":1} als Wert.

FYI, ich bin die Erzeugung $qids aus der Erklärung.

$qids = Examquestion::select('qid')->where('examid', $examid)->get();

gibt es eine Möglichkeit, dass ich sparen könnte, die nur Werte in $qids eher als paar.
Hoffe, du verstehst das Szenario. TIA.

InformationsquelleAutor Luzan Baral | 2016-01-20
Schreibe einen Kommentar