Doctrine ORM Zend Framework EntityManager Найти по нескольким условиям - PullRequest
0 голосов
/ 24 января 2019

Я запрашиваю базу данных с 2 findby's, есть ли способ сделать это в одном findby с 2 условиями?

$this->entityManager->getRepository(User::class)->findOneByConfirmtoken($token)
        && $this->entityManager->getRepository(User::class)->findOneById($id)

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Вы можете передать массив значений в метод findBy. Я также рекомендую вам написать свои собственные репозитории в конкретных случаях. Это полезно для более сложных запросов. В этом случае это будет выглядеть так:

public function findOneByIdAndConfirmationToken(int $userId, string $confirmationToken): ?User
{
    return $this->getEntityManager()
        ->createQueryBuilder()
        ->select('u')
        ->from(User::class, 'u')
        ->where('u.id = :userId')
        ->andWhere('u.confirmationToken = :confirmationToken')
        ->setParameter('userId', $userId, PDO::PARAM_INT)
        ->setParameter('confirmationToken', $confirmationToken, PDO::PARAM_STR)
        ->getQuery()
        ->getOneOrNullResult();
}
0 голосов
/ 25 января 2019
->findBy([
    'property1' => 'value1',
    'property2' => 'value2',
])

См. документы об условиях использования

...