` 工作以及解决方案是什么? " />
使用 Laravel 在 JSON 列中查找电子邮件
Laravel 提供了用于使用 JSON 数据库的强大工具,允许开发人员高效地存储和检索复杂数据。常见任务是在 JSON 列中进行搜索,由于 JSON 数据的性质,这可能具有挑战性。
问题:JsonContains 查询不匹配
在提供的示例中,用户尝试从具有 JSON 列的表中检索具有特定地址的电子邮件,但是,使用 whereJsonContains 的查询未返回任何结果,这是因为 JSON 子查询无法使用箭头运算符(“->”)。 ) 在数组上下文中。
解决方案:在查询中使用数组
要在 JSON 数组中进行搜索,Laravel 需要在查询中使用数组。方法接受一个数组作为第二个参数,每个元素代表一个匹配条件。
在这种情况下,正确的查询将是:
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get();</code>
通过在子查询中使用数组, Laravel 可以正确搜索指定地址的电子邮件。这解决了箭头运算符在数组中不起作用的问题,并确保查询与所需结果匹配。
这种方法允许开发人员有效地从复杂的 JSON 列中检索数据,使其成为一个有价值的工作工具在 Laravel 应用程序中使用 JSON 数据库。
以上是如何使用 Laravel 的 whereJsonContains 在 JSON 列中查找电子邮件:为什么 `->` 不起作用以及解决方案是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!