@vadimek
Полуджун

Как сделать Symfony form типа json?

У Doctrine-сущности есть свойство features типа json, в котором должны хранится характеристики в формате ключ-значение. В админке используется CollectionType для кастомного типа KeyValueType (два поля: key и value). Все работает, но получается избыточно:
[
{"key": "Материал", "value": "металлический каркас"}, {"key": "Цвет подставки", "value": "черный"}
]

Хотелось бы такого:
[
{"Материал": "металлический каркас"}, {"Цвет подставки": "черный"}
]

Или вообще только массив, без объектов внутри, но так понимаю, json_array в Doctrine теперь deprecated.

Что можно придумать, чтобы при этом формы редактирования выводились в два поля: название характеристики и ее значение. Data Transformer? Вроде не то.
Пробовал через FormEvents::PRE_SUBMIT, тоже не вышло ключи изменить у коллекции. Возможно, это я неправильно делал.
На крайний случай можно через Event[Subscriber|Listener] Доктрины, но кажется, что это кривые костыли.
  • Вопрос задан
  • 2143 просмотра
Пригласить эксперта
Ответы на вопрос 1
Minifets
@Minifets
Hello world!!!
Вот документация, как создать кастомный тип.

По мне это самый правльный подход.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы