【问题标题】:Sonata Admin Advance Filter Customization in DataGridFilterDataGrid 过滤器中的 Sonata Admin 高级过滤器自定义
【发布时间】:2018-10-19 03:51:49
【问题描述】:

我正在为我的项目使用奏鸣曲管理员作为后端。

我有一个模块,我在过滤器中有如下状态:

$datagridMapper->add('status', '', array('label' => 'Status','field_type' => 'choice','field_options' => array('choices'=> array('Complete' => 1, 'Pending' => 0,'Error' => 2))));

它工作正常,但提前过滤器我得到了算术过滤器,过滤功能看起来很奇怪。

在这里我附上这张图片的样子:

我想删除那个算术过滤器并想把我自己的过滤器放在那里,或者我想只为那个模块隐藏那个过滤器。

谢谢

【问题讨论】:

    标签: filtering sonata-admin symfony-3.2


    【解决方案1】:

    高级过滤器取决于渲染类型。我认为您要寻找的是类似的东西,例如在Sonata\DoctrineORMAdminBundle\Filter\ChoiceFilter 中实现的,您可以在getRenderSettings() 变量设置operator_type 中看到。这决定了在高级过滤中设置了哪些运算符。

    我没有找到如何简单地从 AdminClas 覆盖此设置的方法,但您可以扩展 Sonata\AdminBundle\Form\Type\Filter\ChoiceType 并使用您定义的高级过滤设置创建新类型。

    顺便说一句。如果您按数据库字段过滤状态,例如 Doctrine,然后设置设置,那么您可以简单地做(设置第二个参数):

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
            ->add('status', 'doctrine_orm_choice', ..
    

    这将解决您的问题。

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 1970-01-01
      • 2019-03-17
      • 2022-01-17
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多