symfony easyadmin query_builder статический метод inject token_storage
Я использую 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 поста, посвященных этой теме, или я думаю, что "статическое" решение не будет хорошим, но ни одно из 3-х решений не дает мне ожидаемого результата.
[ symfony easyadmin пользовательский конструктор форм
[ symfony easyadmin форма поля типа сущности со списком фильтров
заранее спасибо