Как искать в репозитории по IDENTITY в Doctrine? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть таблица в Symfony приложении

id
user_id
test_id
type_id
points

Мне нужен поиск по разным парам: user_id и test_id, user_id и type_id, test_id и type_id. Я могу писать методы в репозитории, например, для всех пар:

$hints = $this->createQueryBuilder('points')
            ->andWhere('IDENTITY(points.user) = :user_id')
            ->andWhere('IDENTITY(points.test) = :test_id')
            ->setParameters([
                'user_id' => $user->getId(),
                'test_id' => $test->getId(),
            ])
            ->getQuery()
            ->getResult();

Но я не хочу каждый раз добавлять новую функцию в репозиторий для новой комбинации и выполнять поиск стандартными методами, такими как $repository->findBy(['IDENTITY(points.user)' => 1]) или $repository->matching($creteria). Но при этом получаю ошибку Unrecognized field: IDENTITY(points.user)

Как искать стандартными функциями с IDENTITY?

1 Ответ

0 голосов
/ 06 мая 2020

Как сказал Skyd в комментариях, это может быть выполнено $pointsRep->findBy(['user' => 1]); или $pointsRep->findBy(['user' => $user]);

...