問題:
在Laravel 應用程序中,您有一個to列電子郵件表中的JSON 類型,以以下格式儲存電子郵件地址:
<code class="JSON">[ { "emailAddress": { "name": "Test", "address": "[email protected]" } }, { "emailAddress": { "name": "Test 2", "address": "[email protected]" } } ]</code>
您需要擷取發送至「[email protected]」的所有電子郵件的集合。
解決方案:
使用 Laravel 的 Eloquent,您可以使用 whereJsonContains 方法在 JSON 欄位中搜尋特定值。但是,您的初始查詢:
<code class="php">DB::table('emails')->whereJsonContains('to->emailAddress->address', '[email protected]')->get();</code>
不會傳回符合項,因為箭頭運算子 (->) 在陣列鍵中無效。要解決此問題,請改用巢狀數組:
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get();</code>
此查詢將正確搜尋等於「[email protected]」的電子郵件地址並傳回所需的集合。
以上是如何在 Laravel 中的 JSON 欄位中查詢電子郵件地址?的詳細內容。更多資訊請關注PHP中文網其他相關文章!