当前用户的 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);
}
我正在尝试从 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);
}