如何使用 Laravel 的 whereJsonContains 在 JSON 列中查找电子邮件:为什么 `->` 不起作用以及解决方案是什么?

Mary-Kate Olsen
发布: 2024-11-01 16:02:02
原创
983 人浏览过

 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 需要在查询中使用数组。方法接受一个数组作为第二个参数,每个元素代表一个匹配条件。

在这种情况下,正确的查询将是:

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

通过在子查询中使用数组, Laravel 可以正确搜索指定地址的电子邮件。这解决了箭头运算符在数组中不起作用的问题,并确保查询与所需结果匹配。

这种方法允许开发人员有效地从复杂的 JSON 列中检索数据,使其成为一个有价值的工作工具在 Laravel 应用程序中使用 JSON 数据库。

以上是如何使用 Laravel 的 whereJsonContains 在 JSON 列中查找电子邮件:为什么 `->` 不起作用以及解决方案是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板