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

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

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

Похожие вопросы
ITK academy Казань
от 75 000 ₽
ИТРУМ Ростов-на-Дону
от 75 000 ₽
Яндекс Москва
от 180 000 до 350 000 ₽