Задать вопрос
@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] Доктрины, но кажется, что это кривые костыли.
  • Вопрос задан
  • 2220 просмотров
Подписаться 3 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Eduson
    GO-разработчик
    4 месяца
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
Minifets
@Minifets
Hello world!!!
Вот документация, как создать кастомный тип.

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

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

Похожие вопросы
ИТРУМ Ростов-на-Дону
от 75 000 ₽
СофтМоушен Санкт-Петербург
от 110 000 до 220 000 ₽
Яндекс Москва
от 180 000 до 350 000 ₽