` Arbeit und was ist die Lösung? " />
E-Mails in einer JSON-Spalte mit Laravel finden
Laravel bietet leistungsstarke Tools für die Arbeit mit JSON-Datenbanken und ermöglicht Entwicklern das effiziente Speichern und Abrufen komplexer Daten. Eins Eine häufige Aufgabe ist die Suche innerhalb einer JSON-Spalte, was aufgrund der Art der JSON-Daten eine Herausforderung sein kann.
Das Problem: JsonContains-Abfrage stimmt nicht überein
In der Beispiel: Der Benutzer versucht, E-Mails mit einer bestimmten Adresse aus einer Tabelle mit einer JSON-Spalte abzurufen. Die Abfrage mit whereJsonContains gibt jedoch keine Ergebnisse zurück. Dies liegt daran, dass JSON-Unterabfragen den Pfeiloperator („->“) nicht verwenden können. ) in Array-Kontexten.
Lösung: Verwenden von Arrays in Abfragen
Um innerhalb eines JSON-Arrays zu suchen, erfordert Laravel die Verwendung von Arrays in der Abfrage „whereJsonContains“. Die Methode verwendet ein Array als zweiten Parameter, wobei jedes Element ein Übereinstimmungskriterium darstellt.
In diesem Fall wäre die richtige Abfrage:
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get();</code>
Durch die Verwendung eines Arrays in der Unterabfrage, Laravel kann korrekt nach E-Mails mit der angegebenen Adresse suchen. Dies behebt das Problem, dass der Pfeiloperator in Arrays nicht funktioniert, und stellt sicher, dass die Abfrage mit den gewünschten Ergebnissen übereinstimmt.
Dieser Ansatz ermöglicht es Entwicklern, effektiv Daten aus komplexen JSON-Spalten abzurufen, was ihn zu einem wertvollen Werkzeug für die Arbeit macht mit JSON-Datenbanken in Laravel-Anwendungen.
Das obige ist der detaillierte Inhalt vonSo finden Sie E-Mails in einer JSON-Spalte mit whereJsonContains von Laravel: Warum funktioniert „->“ nicht und was ist die Lösung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!