我在需要帮助的情况下运行,我有一个Web应用程序,管理员可以在该应用程序中从仪表板创建表单,每个表单具有字段和属性,其中字段包括
image, name, type, required, public
和属性仅包含名称
所以我创建了如下表:
forms_table:
ID | Name | status
forms_fields_table
ID | form_id | name | slug | type | options | required
forms_properties
ID | form_id | name | slug
另一方面,其他用户可以创建一个房地产,他们将不得不填写房地产类别所选表单的数据,因此我将填写的表单数据保存在房地产表的列中
这样保存的数据
[
{slug_value}: {
"name": "xxxx",
"value": "xxxx",
"slug": "ssss",
"value": 42
},
{slug_value}: {
"name": "yyy",
"value": "yyy",
"slug": "aaaa",
"value": 42
},
]
所有这些数据都是动态的,并且每个json的键都与slug相同,用户应该能够通过slug和value过滤这些动态数据的房地产。
问题来了,我知道我可以像这样DB::table('realestates')->where('attributes->{slug_name}->value', 'red')->get();
通过嵌套的JSON过滤数据,但是我没有找到索引动态嵌套JSON的方法,因此在过滤过程中会花费一些时间。
就像我在想的那样,我想到了如果我将这些动态数据存储为字符串并像这样attributes = "value":"search_query"
来过滤字符串,但是我不想一无所获地改变结构。
我正在使用laravel