JSON_CONTAINS()
gør præcis det, du leder efter:
I øjeblikket leverer Laravels forespørgselsbygger ikke en tilsvarende API. Der er et åbent interne forslag dog for det.
I mellemtiden kan du udføre en rå forespørgsel:
\DB::table('users')->whereRaw(
'JSON_CONTAINS(meta->"$.colors", \'["red"]\')'
)->get();
Hvilket ville returnere alle brugere, der har "rød" i deres meta->farver
JSON-feltet. Bemærk, at
Du kan også kalde whereRaw()
direkte på en Eloquent model.
Laravel 5.6
Fra 5.6-udgivelsen indeholder Laravels forespørgselsbygger en ny hvorJsonIndeholder
metode.