如何在 Laravel 中的 JSON 欄位中查詢電子郵件地址?

Barbara Streisand
發布: 2024-10-29 00:24:02
原創
799 人瀏覽過

How to Query for Email Addresses within a JSON Column in Laravel?

從Laravel 中的JSON 列檢索數據

問題:

在Laravel 應用程序中,您有一個to列電子郵件表中的JSON 類型,以以下格式儲存電子郵件地址:

<code class="JSON">[
    {
        "emailAddress": {
            "name": "Test", 
            "address": "[email&#160;protected]"
        }
    }, 
    {
        "emailAddress": {
            "name": "Test 2", 
            "address": "[email&#160;protected]"
        }
    }
]</code>
登入後複製

您需要擷取發送至「[email protected]」的所有電子郵件的集合。

解決方案:

使用 Laravel 的 Eloquent,您可以使用 whereJsonContains 方法在 JSON 欄位中搜尋特定值。但是,您的初始查詢:

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

不會傳回符合項,因為箭頭運算子 (->) 在陣列鍵中無效。要解決此問題,請改用巢狀數組:

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

此查詢將正確搜尋等於「[email protected]」的電子郵件地址並傳回所需的集合。

以上是如何在 Laravel 中的 JSON 欄位中查詢電子郵件地址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!