Symfony2表单 - 在OneToMany关系中添加子对象时过滤父对象

Nik*_*kov 2 forms symfony

我有两个实体 - 类别和文章与OneToMany关系.

当我渲染用于添加/编辑文章对象的表单时,我在html选择中看到所有类别,但我想只看到一部分类别(将来我还想根据不同的条件添加类别).

如何覆盖由Doctrine自动生成的查询,该查询检索类别,以便过滤它们?

提前谢谢,尼古拉

smo*_*eno 5

在ArticleType的类别字段中传递query_builder参数,您可以自定义检索类别元素的查询.

$form = $this->createFormBuilder()
->add('category', 'entity', array(
'class' => 'ArticleBundle:Category',
    'query_builder' => function(EntityRepository $er) {
        return $er->createQueryBuilder('c')
                      ->orderBy('c.name', 'ASC');
                      //add more query elements here
                     },)
  )
->getForm();
Run Code Online (Sandbox Code Playgroud)

在此处查看更多详情