Symfony EntityType - 如何隐藏值?

Symfony EntityType - how to hide values?

我正在呈现一个带有 EntityType 字段的表单,如下所示:

        $builder
        ->add('categoryId',EntityType::class,array('class' => 'TestBundle:BudgetCategory','choice_label'=>'description'))
        //etc...

现在它正在显示所有可能的选项。

但我的 BudgetCategory 实体还包含 "hidden" 字段,我不想显示隐藏值设置为 true 的选项。

我该怎么做?

EntityType 有选项 query_builder 让你 customize which entities are fetched

它会是这样的:

->add('categoryId',EntityType::class,array(
    'class' => 'TestBundle:BudgetCategory',
    'choice_label'=>'description',
    'query_builder' => function (EntityRepository $er) {
        return $er->createQueryBuilder('b')
                  ->where('b.hidden = 1');
     },
))