@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] Доктрины, но кажется, что это кривые костыли.
  • Вопрос задан
  • 2066 просмотров
Пригласить эксперта
Ответы на вопрос 1
Minifets
@Minifets
Hello world!!!
Вот документация, как создать кастомный тип.

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

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

Войти через центр авторизации
Похожие вопросы