Maison  >  Article  >  base de données  >  Comment rechercher des e-mails dans une colonne JSON avec WhereJsonContains de Laravel : pourquoi `->` ne fonctionne-t-il pas et quelle est la solution ?

Comment rechercher des e-mails dans une colonne JSON avec WhereJsonContains de Laravel : pourquoi `->` ne fonctionne-t-il pas et quelle est la solution ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 16:02:02980parcourir

 How to Find Emails in a JSON Column with Laravel's whereJsonContains: Why Doesn't `->` Le travail et quelle est la solution ? 
` 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&#160;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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn