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. Вы не можете сделать это. Если вы хотите сделать это, вы должны добавить опции к типу формы, чтобы установить построитель запросов.