Действие списка EasyAdmin для текущего пользователя - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь получить список объектов из базы данных, где Entity.user = "current user".

Это отношение ManyToOne между сущностью сущности и сущностью пользователя

Я пытался использовать dqlопция -filter в конфигурации пакета, но не удалось найти переменную параметра, как мы можем найти в Controller $this->getUser() или в Twig {{app.user}}

Я пытался использовать пользовательский контроллер, но я запутался, так как документацияне очень подробно.

1 Ответ

0 голосов
/ 19 февраля 2019

Я бы пошел с пользовательским контроллером и переписал бы findAll или createListQueryBuilder , всегда добавляя DQL-фильтр.Примерно так:

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