ホームページ  >  記事  >  データベース  >  Laravel の whereJsonContains を使用して JSON 列内の電子メールを検索する方法: `->` が機能しない理由とその解決策は何ですか?

Laravel の whereJsonContains を使用して JSON 列内の電子メールを検索する方法: `->` が機能しない理由とその解決策は何ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 16:02:02899ブラウズ

 How to Find Emails in a JSON Column with Laravel's whereJsonContains: Why Doesn't `->` 解決策は何ですか? 
` 作業と解決策は何ですか? " />

Laravel を使用した JSON 列内のメールの検索

Laravel は、JSON データベースを操作するための強力なツールを提供し、開発者が複雑なデータを効率的に保存および取得できるようにします。一般的なタスクは JSON 列内での検索ですが、JSON データの性質上、これは困難な場合があります。

問題: JsonContains クエリが一致しません

この例では、ユーザーは JSON 列を含むテーブルから特定のアドレスを持つ電子メールを取得しようとしていますが、whereJsonContains を使用したクエリでは結果が返されません。これは、JSON サブクエリが矢印演算子 (「->」) を使用できないためです。

解決策: クエリで配列を使用する

JSON 配列内を検索するには、Laravel ではクエリで配列を使用する必要があります。メソッドは 2 番目のパラメータとして配列を受け取り、各要素は一致基準を表します。

この場合、正しいクエリは次のようになります。

<code class="php">DB::table('emails')
    ->whereJsonContains('to', [['emailAddress' => ['address' => '[email&#160;protected]']]])
    ->get();</code>

サブクエリで配列を使用すると、 Laravel は、指定されたアドレスを持つメールを正しく検索できます。これにより、矢印演算子が配列内で機能しないという問題が解決され、クエリが目的の結果と一致することが保証されます。

このアプローチにより、開発者は複雑な JSON 列からデータを効率的に取得できるため、作業に役立つツールになります。 Laravel アプリケーションの JSON データベースを使用します。

以上がLaravel の whereJsonContains を使用して JSON 列内の電子メールを検索する方法: `->` が機能しない理由とその解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。