【问题标题】:Laravel eloquent filter from a value of json column来自json列值的Laravel eloquent过滤器
【发布时间】:2021-11-18 23:29:41
【问题描述】:

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

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

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

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

这不是很糟糕吗?或者有没有其他办法?

【问题讨论】:

    标签: laravel eloquent laravel-8


    【解决方案1】:

    现代版本的数据库通常支持 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 文档:

    【讨论】:

    • 太棒了!您能否也将其标记为解决方案?这样其他人在遇到类似问题时可以轻松找到它,您可以使用投票箭头下方的复选标记进行批准。
    猜你喜欢
    • 2017-11-05
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多