使用 EasyAdmin 3.3 过滤器的自动完成选项

Posted

技术标签:

【中文标题】使用 EasyAdmin 3.3 过滤器的自动完成选项【英文标题】:Autocomplete option on filter with EasyAdmin 3.3 【发布时间】:2021-10-03 06:07:00 【问题描述】:

我想知道在 easyadmin 3.3 中是否有一个快速解决方案可以在过滤器上使用自动完成选项。 它在表单上可以正常工作,但不能在过滤器上工作,它会返回一个未定义的错误。

  public function configureFields(string $pageName): iterable
    
        return [
            AssociationField::new('entity1')->autocomplete(true),
            AssociationField::new('entity2'),


     public function configureFilters(Filters $filters): Filters
        
          return $filters
    
            ->add(EntityFilter::new('entity1')->setFormTypeOption('value_type_options', 
             ['multiple'=> true]))
    
            ->add(EntityFilter::new('entity2'))
    
            ;
        

我没有找到很多关于这个的代码(这个版本)。 我知道easyadmin 3.4可以解决这个问题,但是升级需要用bootstrap 5和jquery结束适配很多代码。

【问题讨论】:

【参考方案1】:

过滤器并不是真正的自动完成功能,但您可以添加这样的 js 代码以使它们成为 select2 以便于搜索您需要的选项

$('#modal-filters').on('shown.bs.modal', e => 
   console.log(e);
   setTimeout(makeSelect2, 100);
);

function makeSelect2 () 
   if (document.getElementById('filters')) 
      $('.filter-field [data-widget=select2]').select2(
         theme: 'bootstrap',
         placeholder: 'Select',
         allowClear: true
      );
    else 
      setTimeout(makeSelect2, 100);
   

【讨论】:

感谢您的回答!我设法用另一种方式找到了解决方案:configureCrud 中的->setSearchFields([])。我使用研究杆而不是过滤器。它对我的项目来说足够好。

以上是关于使用 EasyAdmin 3.3 过滤器的自动完成选项的主要内容,如果未能解决你的问题,请参考以下文章

EasyAdmin 3翻译错误,“翻译”字段的Doctrine类型为“4”,EasyAdmin尚不支持

EasyAdmin 使用您自己的模板问题

在 Symfony 5 中使用 composer 安装 EasyAdmin 的问题

Symfony 4 EasyAdmin 如何加密密码?

如何在两个属性上使用 Vue/Vuetify 自动完成过滤器?

EasyAdmin 3:嵌套表单(另一个集合中的调用)