【发布时间】:2021-05-21 13:28:59
【问题描述】:
我需要默认过滤索引页面的结果,以便它只返回满足特定条件的实体,而不需要用户主动过滤任何内容。 EasyAdminBundle2 文档似乎有static filters 的答案。 但是,我似乎在 EasyAdminBundle3 中找不到该选项。有可能吗?
【问题讨论】:
标签: php symfony easyadmin3
我需要默认过滤索引页面的结果,以便它只返回满足特定条件的实体,而不需要用户主动过滤任何内容。 EasyAdminBundle2 文档似乎有static filters 的答案。 但是,我似乎在 EasyAdminBundle3 中找不到该选项。有可能吗?
【问题讨论】:
标签: php symfony easyadmin3
如 easyadmin 2 -> 3 迁移指南 (https://symfony.com/doc/current/bundles/EasyAdminBundle/upgrade.html) 中所述
用于快速过滤实体列表的 dql_filter 选项已 删除。相反,使用 CRUD 中的 createIndexQueryBuilder() 方法 控制器。
还有一个带有代码示例的相关 SO 问题:Symfony EasyAdminBundle 3 override the createIndexQueryBuilder()
【讨论】:
我还不能发表评论,所以我改用答案: 你可以使用
public function configureFields(string $pageName): iterable
{
return [
AssociationField::new('randomField'),
TextField::new('randomField2'),
/////////
}
public function configureCrud(Crud $crud): Crud
{
return $crud
->setDefaultSort(['id' => 'DESC'])
;
}
在本例中,->setDefaultSort 将默认按 DESC 对您的项目 id 进行排序。
【讨论】: