【问题标题】:Doctrine ORM zend framework entitymanager findby multiple conditionsDoctrine ORM zend framework entitymanager findby multiple conditions
【发布时间】:2019-01-24 20:04:59
【问题描述】:

我正在使用 2 个 findby 查询数据库,有没有办法在一个 findby 中使用 2 个条件进行查询?

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

【问题讨论】:

    标签: zend-framework doctrine-orm


    【解决方案1】:
    ->findBy([
        'property1' => 'value1',
        'property2' => 'value2',
    ])
    

    使用条件见the docs

    【讨论】:

      【解决方案2】:

      您可以将值数组传递给 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();
      }
      

      【讨论】:

        猜你喜欢
        • 2013-03-16
        • 2011-08-15
        • 1970-01-01
        • 1970-01-01
        • 2013-12-10
        • 1970-01-01
        • 2012-02-22
        • 2011-12-13
        • 1970-01-01
        相关资源
        最近更新 更多