symfony从子表单调用父表单构造函数

时间:2014-11-15 14:57:33

标签: forms symfony constructor query-builder

我在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)
}

我想在实例化子项时传递一个querybuilder,并在父表单中使用此querybuilder,如上所示。如何知道父表单的构造函数知道子表单扩展AbstractType并使用常规getParent方法引用父表单?

我的想法是,我会在实例化时将不同的查询构建器传递给子项,但是保持字段的体系结构在子项中是通用的(因此我把它放在父项中) - 孩子将在表单的其他元素上有所不同。 / p>

1 个答案:

答案 0 :(得分:0)

表单字段父项与PHP扩展父项不同。你不能这样做。如果要执行此操作,则必须向表单类型添加选项以设置查询构建器。