【发布时间】:2020-12-05 12:02:50
【问题描述】:
EasyAdminBundle 文档上说
例如,index() 操作调用名为 createIndexQueryBuilder() 的方法来创建 Doctrine 查询构建器,用于获取显示在索引列表中的结果。如果您想自定义该列表,最好重写 createIndexQueryBuilder() 方法而不是整个 index() 方法。
让我们想象一下,当用户被删除时,我的用户实体中的字段 isDeleted 设置为 true。在索引页面中,我只想显示 isDeleted = false 的用户。 为此如何覆盖 createIndexQueryBuilder()?
这里是createIndexQueryBuilder方法
public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder
{
return $this->get(EntityRepository::class)->createQueryBuilder($searchDto, $entityDto, $fields, $filters);
}
我试图像这样覆盖它,但它不起作用
public function createIndexQueryBuilder(SearchDto $searchDto, EntityDto $entityDto, FieldCollection $fields, FilterCollection $filters): QueryBuilder
{
$response = $this->get(EntityRepository::class)->createQueryBuilder($searchDto, $entityDto, $fields, $filters);
$response->where('isDeleted', true);
return $response;
}
【问题讨论】:
-
没有看到代码希望你也做得很好
-
你重写了这个方法吗?我也有同样的问题。放置你的 crud 控制器代码。