【问题标题】:EasyAdmin3 static dql filtersEasyAdmin 3 静态 dql 过滤器
【发布时间】:2021-05-21 13:28:59
【问题描述】:

我需要默认过滤索引页面的结果,以便它只返回满足特定条件的实体,而不需要用户主动过滤任何内容。 EasyAdminBundle2 文档似乎有static filters 的答案。 但是,我似乎在 EasyAdminBundle3 中找不到该选项。有可能吗?

【问题讨论】:

    标签: php symfony easyadmin3


    【解决方案1】:

    如 easyadmin 2 -> 3 迁移指南 (https://symfony.com/doc/current/bundles/EasyAdminBundle/upgrade.html) 中所述

    用于快速过滤实体列表的 dql_filter 选项已 删除。相反,使用 CRUD 中的 createIndexQueryBuilder() 方法 控制器。

    还有一个带有代码示例的相关 SO 问题:Symfony EasyAdminBundle 3 override the createIndexQueryBuilder()

    【讨论】:

      【解决方案2】:

      我还不能发表评论,所以我改用答案: 你可以使用

       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 进行排序。

      【讨论】:

      • 谢谢,但这会对记录进行排序,并且不会过滤它们
      猜你喜欢
      • 1970-01-01
      • 2021-03-08
      • 2021-08-26
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      相关资源
      最近更新 更多