Задать вопрос
glaphire
@glaphire
PHP developer

Как переопределить свойства существующего поля в наследуемой форме в Form Component?

Symfony 6.0.
Не могу найти в документации или на SO пример - как можно переопределить свойства одного поля в наследуемой форме в симфони? Использовать ивенты формы кажется не совсем подходящим инструментом, делать две формы параллельно от базовой - неэффективно.
Пример:

<?php

class ArticleFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title', TextType::class, ['help' => 'Choose something catchy'])
            ->add('content', null, ['rows' => 15]);
    }
}

class CustomArticleFormType extends ArticleFormType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('content', null, ['rows' => 25]);

        parent::buildForm($builder, $options);
    }
}


Поделитесь пожалуйста ссылками на решение похожего вопроса, я не понимаю как его найти - примеры в документации говорят или о FormExtension, или о событиях формы, но они нужны для других задач.
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
я не специалист по симфони, но так работать не будет - нужно вначале вызвать parent::buildForm(); a потом уже вносить заменять $builder->add(content', $builder->get('content')->getType(), $builder->get('content')->getOptions()),

ну и из банального LSP'шного - всегда можно наследовать класс и расширить видимость его свойства .

+ один из разрабов симфони сказал, что это устаревший способ и нужно передавать билдер, а не строку, но лучше поговори с ними сама, я их не всегда понимаю.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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