Есть ли способ представить поле JSON в EasyAdmin 3?

#php #json #symfony #symfony5 #easyadmin

#php #json #symfony #symfony5 #easyadmin

Вопрос:

Я новичок в Symfony и все еще учусь. В настоящее время я работаю над приложением Symfony, где у меня есть таблица, представляющая проекты, и в каждом проекте есть id , title , startDate , endDate и fields где fields находится поле JSON, содержащее данные, представляющие разные столбцы, которые являются пользовательскими для проекта и могут быть добавлены, обновлены или удалены пользователем.

Данные внутри этого поля выглядят следующим образом:

 {
  "columns": {
    "column1": "string",
    "column2": "integer"
  },
  "rows": [
    {
      "column1": "foo",
      "column2": 22
    },
    {
      "column1": "bar",
      "column2": 23
    }
  ]
}
  

"columns" представляет пользовательские столбцы, добавленные в конкретный проект, и "rows" представляет данные в каждом столбце. "string" и "integer" представлять тип данных в каждом столбце.

Мой вопрос:

Я могу извлечь столбцы и значения, используя DoctrineJsonFunctions, и я использую EasyAdmin 3, но мой вопрос в том, как я могу читать столбцы проекта при просмотре сведений о проекте, зная, что у каждого проекта могут быть разные столбцы? Или есть какое-либо лучшее решение, чем использование поля JSON? Заранее благодарю!

Ответ №1:

В easyadmin 3 вы можете использовать arrayField для отображения данных JSON.

Комментарии:

1. arrayField не является ассоциативным и не может обрабатывать вложенность.

2. Сопоставление между типом doctrine и существующими типами полей можно найти по адресу symfony.com/bundles/EasyAdminBundle/current /…