如何在 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学习者快速成长!