` 作業と解決策は何ですか? " />
Laravel を使用した JSON 列内のメールの検索
Laravel は、JSON データベースを操作するための強力なツールを提供し、開発者が複雑なデータを効率的に保存および取得できるようにします。一般的なタスクは JSON 列内での検索ですが、JSON データの性質上、これは困難な場合があります。
問題: JsonContains クエリが一致しません
この例では、ユーザーは JSON 列を含むテーブルから特定のアドレスを持つ電子メールを取得しようとしていますが、whereJsonContains を使用したクエリでは結果が返されません。これは、JSON サブクエリが矢印演算子 (「->」) を使用できないためです。
解決策: クエリで配列を使用する
JSON 配列内を検索するには、Laravel ではクエリで配列を使用する必要があります。メソッドは 2 番目のパラメータとして配列を受け取り、各要素は一致基準を表します。
この場合、正しいクエリは次のようになります。
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get();</code>
サブクエリで配列を使用すると、 Laravel は、指定されたアドレスを持つメールを正しく検索できます。これにより、矢印演算子が配列内で機能しないという問題が解決され、クエリが目的の結果と一致することが保証されます。
このアプローチにより、開発者は複雑な JSON 列からデータを効率的に取得できるため、作業に役立つツールになります。 Laravel アプリケーションの JSON データベースを使用します。
以上がLaravel の whereJsonContains を使用して JSON 列内の電子メールを検索する方法: `->` が機能しない理由とその解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。