@kol9di4

Как измененить label (для элемента формы в FormBuilder) на значение свойства связанной сущности?

Всех приветствую! Нужен совет.
Есть сущность ItemAttributeIntegerType у которой помимо остальных свойств, есть свойства - «value» и «customItemAttribute»
Есть сущность customItemAttribute у которой помимо остальных свойств, есть свойство - « name»
Хочу создать форму, которая служит для изменения сущности «ItemAttributeIntegerType». Мне нужно сделать форму так, чтобы пользователю показывалось только поле для ввода "value", и у этого поля вместо стандартного "label" для формы показывалось свойство name у сущности «customItemAttribute».

$builder
      ->add('value')
      ->add('customItemAttribute', EntityType::class, [
          'class' => CustomItemAttribute::class,
          'choice_label' => 'name',
      ])
;

Для примера здесь форма, которая добавляет поле для ввода "value" и второе поле, которое мне не нужно выбирать, а нужно подставить его значение в "label" первого.
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
@kol9di4 Автор вопроса
Отвечаю сам на свой вопрос:
Вдруг кому поможет, реализовал так
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
            $customItemAttributeName = $event->getData()->getCustomItemAttribute()->getName();
            $form = $event->getForm();
            $form
                ->add('value', TextType::class, [
                    'label' => $customItemAttributeName,
                ]);
        });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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