Laravel eloquent 从 json 列的值过滤
Laravel eloquent filter from a value of json column
我接手了一个项目,他们将 date_start
值存储在 JSON 列中。
(例如,id、名称、some_column、元数据)
其中 meta 的值为 { propert1, property2, property3, "date_start": "2021-09-26", and so on...}
现在,在前端,我必须做一个搜索功能,我 select 一个日期。
现在在后端,由于 date_start
的值已存储在 json 列中,我假设我需要先获取所有记录,遍历它们然后然后解码 meta
字段。
总体来说是不是很糟糕?或者还有其他方法吗?
现代版本的数据库通常支持 JSON 列类型。这些 json 列可以使用 SQL.
查询
preferences
列 users
table:
{"dining": {"meal": "salad", "time": "20:00"}}
查询:
$users = DB::table('users')
->where('preferences->dining->meal', 'salad')
->get();
查看 JSON Where clauses 上的 Laravel 文档:
我接手了一个项目,他们将 date_start
值存储在 JSON 列中。
(例如,id、名称、some_column、元数据)
其中 meta 的值为 { propert1, property2, property3, "date_start": "2021-09-26", and so on...}
现在,在前端,我必须做一个搜索功能,我 select 一个日期。
现在在后端,由于 date_start
的值已存储在 json 列中,我假设我需要先获取所有记录,遍历它们然后然后解码 meta
字段。
总体来说是不是很糟糕?或者还有其他方法吗?
现代版本的数据库通常支持 JSON 列类型。这些 json 列可以使用 SQL.
查询preferences
列 users
table:
{"dining": {"meal": "salad", "time": "20:00"}}
查询:
$users = DB::table('users')
->where('preferences->dining->meal', 'salad')
->get();
查看 JSON Where clauses 上的 Laravel 文档: