我正在尝试从数据库 where 检索对象列表Entity.user = "current user"
。
这是实体实体和用户实体之间的多对一关系
我尝试在捆绑配置中使用 dql-filter 选项,但找不到像我们可以在 Controller$this->getUser()
或 Twig中找到的参数变量{{app.user}}
我尝试使用自定义控制器,但我很困惑,因为文档不是很详细。
我会使用自定义控制器并通过始终添加 DQL 过滤器来覆盖findAll或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);
}