` Le travail et quelle est la solution ? " />
Rechercher des e-mails dans une colonne JSON avec Laravel
Laravel fournit des outils puissants pour travailler avec des bases de données JSON, permettant aux développeurs de stocker et de récupérer efficacement des données complexes. Un une tâche courante consiste à rechercher dans une colonne JSON, ce qui peut s'avérer difficile en raison de la nature des données JSON.
Le problème : la requête JsonContains ne correspond pas
Dans le Dans l'exemple fourni, l'utilisateur tente de récupérer des e-mails avec une adresse spécifique à partir d'une table avec une colonne JSON. Cependant, la requête utilisant WhereJsonContains ne renvoie aucun résultat, car les sous-requêtes JSON ne peuvent pas utiliser l'opérateur de flèche ("->"). ) dans des contextes de tableau.
Solution : Utiliser des tableaux dans les requêtes
Pour effectuer une recherche dans un tableau JSON, Laravel nécessite l'utilisation de tableaux dans la requête "whereJsonContains". La méthode prend un tableau comme deuxième paramètre, chaque élément représentant un critère de correspondance.
Dans ce cas, la requête correcte serait :
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get();</code>
En utilisant un tableau dans la sous-requête, Laravel peut rechercher correctement les e-mails avec l'adresse spécifiée. Cela résout le problème où l'opérateur de flèche ne fonctionne pas dans les tableaux et garantit que la requête correspond aux résultats souhaités.
Cette approche permet aux développeurs de récupérer efficacement les données de colonnes JSON complexes, ce qui en fait un outil précieux pour travailler avec les bases de données JSON dans les applications Laravel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!