Laravel Eloquent 地从 json 列的值中过滤

标签 laravel eloquent laravel-8

我接手了一个项目,他们将 date_start 值存储在 JSON 列中。

(例如,id、name、some_column、meta)
meta 中的值为 { propert1, property2, property3, "date_start": "2021-09-26", 等等...}

现在,在前端,我必须做一个搜索功能,我在其中选择一个日期。

现在在后端,因为 date_start 的值已经存储在一个 json 列中,我假设我需要先获取所有记录,遍历它们然后解码字段。

总体来说是不是很糟糕?还是有其他办法?

最佳答案

现代版本的数据库通常支持 JSON 列类型。可以使用 SQL 查询这些 json 列。

users 表中的

preferences 列:

{"dining": {"meal": "salad", "time": "20:00"}}

查询:

$users = DB::table('users')
                ->where('preferences->dining->meal', 'salad')
                ->get();

JSON Where clauses 上查看 Laravel 文档:

关于Laravel Eloquent 地从 json 列的值中过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69336034/

相关文章:

php - Laravel Auth::user()->roles()->get() 为空

laravel - Laravel杀死了Ubuntu

php - 如何在 Eloquent withCount 函数回调中获取数据透视数据?

laravel - 用户无法登录从 Laravel 8 中的自定义注册页面注册的用户

node.js - "npm run dev"第一次显示错误信息

php - Laravel 8 路由到 Controller 。 SEO 友好的 URL 结构

php - Laravel - 如何验证西里尔字母

laravel - 为什么我的 updateOrInsert 不工作 laravel

php - Laravel - 在查询生成器中访问模型值

eloquent - OctoberCMS 范围不适用