Laravel Nova Обработка вложенных данных Mysql JSON

У меня есть таблица с вопросами, где сам вопрос и количество вопросов могут меняться. Вместо того, чтобы связывать данные с FK, я просто решил взять данные вопроса и сохранить их в столбце JSON с данными родительской записи (человека, который ответил на вопросы). JSON не будет управлять какой-либо аналитикой или показателями, поэтому меня не беспокоит проблема производительности. Я просто хочу сделать снимок вопросов, на которые они ответили, и того, какими они были в то время.

Вот как это отформатировано.

[{
    "id": 2,
    "question": "Question 1",
    "response": "no",
    "created_at": "2020-05-19T15:34:09.000000Z",
    "updated_at": "2020-05-19T15:34:09.000000Z"
}, {
    "id": 3,
    "question": "Question 2",
    "response": "no",
    "created_at": "2020-05-19T15:39:28.000000Z",
    "updated_at": "2020-05-19T15:39:28.000000Z"
}, {
    "id": 4,
    "question": "Question 3",
    "response": "no",
    "created_at": "2020-05-19T15:39:38.000000Z",
    "updated_at": "2020-05-19T15:53:55.000000Z"
}]

Когда я пытаюсь отобразить данные, используя KeyValue::make('Meta') он помещает один символ в столбец ключ и значение для всего json, создает тысячи "пар" Key=> T, Value=> H, и так далее.

Однако я могу использовать...

KeyValue::make('Meta', 'meta.0')
KeyValue::make('Meta', 'meta.1')
KeyValue::make('Meta', 'meta.3')

К сожалению, этот подход предполагает, что я знаю, на сколько вопросов они ответили, но не знаю. Если я просто добавлю больше, чем ожидаю, это создаст дополнительные мета-заполнители без данных.

Его можно использовать, но я предполагаю, что есть способ подсчитать записи JSON и создать Return в зависимости от количества записей.

0 ответов

Другие вопросы по тегам