当前用户的EasyAdmin列表操作

时间:2019-02-19 17:52:15

标签: symfony easyadmin

我正在尝试从Entity.user = "current user"的数据库中检索对象列表。

这是实体实体和用户实体之间的ManyToOne关系

我尝试在bundle配置中使用dql-filter选项,但是找不到像在控制器$this->getUser()或Twig {{app.user}}中可以找到的参数变量

我尝试使用自定义控制器,但由于文档不够详细,我感到困惑。

1 个答案:

答案 0 :(得分:0)

我将使用自定义控制器,并始终添加DQL过滤器来覆盖findAllcreateListQueryBuilder。像这样的东西:

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);
}