programing

여러 OR 조건이 있는 ZF2 원칙 쿼리

shortcode 2022. 11. 4. 22:21
반응형

여러 OR 조건이 있는 ZF2 원칙 쿼리

저는 다음과 같은 독트린 쿼리를 작성했습니다.

        $query3 = $this->entityManager
            ->createQueryBuilder()
            ->select('t.textDomain , t.translationKey , t.languageIso , t.translationDate')
            ->from(
                'AMDatabase\Entity\TheVerse\TranslationsMasters',
                't'
            )
            ->groupBy('t.languageIso')
            ->orderBy(
                't.translationDate',
                'DESC'
            );

// the values of $key2 array are:
// en-US
// es-MX
// es-PR

        foreach( $translation AS $key2=>$value2 ) {               

            if ( $key2 == 'en-US' ) {

                $query3
                    ->orWhere(
                        $query3->expr()
                               ->like(
                                   't.languageIso',
                                   ':languageIso'
                               )
                    )
                    ->setParameter(
                        'languageIso',
                        $key2
                    );

            }

        }

        $result3 = $query3->getQuery()
                          ->getArrayResult();

3가지 언어 ISO를 동시에 검색하려면 어떻게 해야 하나요?

  • "if ( $key2 == 'en-US' ) {"를 사용하면 쿼리가 실행되어 예상된 결과를 얻을 수 있습니다.
  • 그러나 "if ( $key2 == 'en-US' ) {"를 삭제하면 검색 결과가 없습니다.

"또는 "어디"를 사용하면 쿼리에 계속 조건이 추가된다고 생각했습니다(En-US는 여전히 일치합니다).

인은 지금까지 한 번도orWhere제 생각대로 작동할 수 있도록 말이죠.아마도 당신이 필요로 할 것이다.Where첫 번째 정의에서 다음 명령을 추가할 수 있습니다.orWhere나중에. 네스트된 파일을 사용해야 할 수도 있습니다.orX대신 다음과 같은 문구를 사용합니다.

$query3->andWhere($query3->expr()->orX(
    $query3->expr()->like('t.languageIso', $query3->expr()->literal('en-US')),
    $query3->expr()->like('t.languageIso', $query3->expr()->literal('es-MX')),
    $query3->expr()->like('t.languageIso', $query3->expr()->literal('es-PR'))
));

루프를 통해 스테이트먼트를 전개할 수 없습니다.단, 3가지 기준밖에 없기 때문에 쉽게 작성할 수 있습니다.

언급URL : https://stackoverflow.com/questions/29978816/zf2-doctrine-query-with-multiple-or-conditions

반응형