使用 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尚不支持
在 Symfony 5 中使用 composer 安装 EasyAdmin 的问题