Symfony вызывает родительский конструктор формы из дочерней формы

У меня есть три формы в symfony, две из которых являются дочерними формами третьей. В родительской форме у меня есть следующее:

    ->add('category', 'entity',array(
            'class' => 'AppBundle:MarketPlace\ProductCategory',
            'query_builder'=>$this->QueryBuilder
        ))

в дочерней форме, а также в родительской форме у меня есть

public function __construct($queryBuilder=null)
{
    $this->queryBuilder=$queryBuilder;
}

Я хотел бы передать построитель запросов родителю, чтобы избежать повторения свойств поля в каждом дочернем элементе. Например:

public function __construct($queryBuilder=null)
{
    $this->queryBuilder=$queryBuilder;
     $this->getParent()->__construct($queryBuilder)
}

Я хочу передать построитель запросов при создании экземпляров потомков и использовать этот построитель запросов в родительской форме, как показано выше. Как я могу вызвать конструктор родительской формы, зная, что дочерняя форма расширяет AbstractType и обращаться к родителю с помощью обычного метода getParent?

Идея состоит в том, что я буду передавать различные построители запросов детям, когда создаю их экземпляры, но сохраняю архитектуру поля, общую для всех детей (отсюда и тот факт, что я поместил это в родительский элемент) - дети будут отличаться от других элементов формы.

1 ответ

Решение

Родители поля формы - это нечто иное, чем родители, расширяющие PHP. Вы не можете сделать это. Если вы хотите сделать это, вы должны добавить опции к типу формы, чтобы установить построитель запросов.

Другие вопросы по тегам