symfony easyadmin query_builder статический метод inject token_storage - PullRequest
0 голосов
/ 13 сентября 2018

Я использую Symfony 3.4 и easycorp / easyadmin-bundle 1.17

Я пытаюсь использовать статическую функцию для параметров query_builder:

form:
    fields:
        ...
        - { property: 'customer', label: '', type_options: { query_builder: ['AppBundle\Repository\PersonRepository', 'getCustomer'] } }

хранилище:

class PersonRepository extends EntityRepository
{
    public static function getCustomer(EntityRepository $er)
    {
        //        dump($tokeStorage);
        dump($er);
        die;
        $user = null; // how to get token_storage ?
        $query = $er->createQueryBuilder('person')
            ->leftJoin('person.userCreated', 'user')
            ->andWhere('person.type = :type')
            ->setParameter('type', 2)
        ;
        if (in_array("ROLE_ADMIN", $user->getRoles())) {
            $query->andWhere('user.company = :company');
            $query->setParameter('company', $user->getCompany());
        } else {
            $query->andWhere('user.id = :user');
            $query->setParameter('user', $user->getId());
        }

        return $query;
    }
}

Мне нужно добавить хранилище токенов, как я могу это сделать?

Я открыл 3 поста, посвященных этой теме, или я думаю, что решение "static" не будет хорошим, но ни одно из3 решения дают ожидаемый результат

[ пользовательский конструктор форм symfony easyadmin

[ объект типа поля формы symfony easyadmin со списком фильтров

заранее спасибо

...