0

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

这是实体实体和用户实体之间的多对一关系

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

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

4

1 回答 1

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);
}
于 2019-02-19T20:13:44.040 回答