Sonata admin datagrid 过滤器无法让 ChoiceType 工作

Sonata admin datagrid filter can't get ChoiceType to work

我正在去除这个问题。在 sonata admin 3.x 上,我在列表视图中有这个过滤器,提供了一个 select 框,其中包含描述的选项。


protected function configureDatagridFilters(DatagridMapper $datagridMapper): void 
{
    ->add('state', 'doctrine_orm_choice',
                array('label' => 'State'),
                ChoiceType::class, array(
                    'choices' => array(
                        'new' => 'new',
                        'open' => 'open',
                        'closed' => 'closed' ),
                        'required' => false

                    )
            )
}

但是在升级到 4.x 时我得到了以下错误:

No attached service to type named 'doctrine_orm_choice'

我尝试了从 ChoiceType 到 ChoiceFilter 之间的所有方法,但我在文档中找不到任何片段,也找不到任何关于它现在应该如何工作的相关提示。

非常感谢!

正确的语法是:

use Sonata\DoctrineORMAdminBundle\Filter\ChoiceFilter;

protected function configureDatagridFilters(DatagridMapper $datagridMapper): void 
{
     ->add('state',   ChoiceFilter::class, ['label' => 'State',
                    'field_type' => ChoiceType::class,
                    'field_options' => [
                        'choices' => [
                            'new' => 'new',
                            'open' => 'open',
                            'closed' => 'closed'],
                        'required' => false

                    ]
                ]
            )
}