Задать вопрос
@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" первого.
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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,
                ]);
        });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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