当前用户的 EasyAdmin 列表操作

EasyAdmin list action for current user

我正在尝试从 Entity.user = "current user".

的数据库中检索对象列表

Entity 实体和 User 实体之间是 ManyToOne 关系

我尝试在捆绑配置中使用 dql-filter 选项,但找不到我们可以在 Controller $this->getUser() 或 Twig {{app.user}}

中找到的参数变量

我尝试使用自定义控制器,但我很困惑,因为文档不是很详细。

我会使用自定义控制器并通过始终添加 DQL 过滤器来覆盖 findAll or createListQueryBuilder。有点像这样:

protected function createListQueryBuilder($entityClass, $sortDirection, $sortField = null, $dqlFilter = null)
{
    if (null === $dqlFilter) {
        $dqlFilter = sprintf('entity.user = %s', $this->getUser()->getId());
    } else {
        $dqlFilter .= sprintf(' AND entity.user = %s', $this->getUser()->getId());
    }

    return parent::createListQueryBuilder($entityClass, $sortDirection, $sortField, $dqlFilter);
}