


Doctrine에서 왼쪽 조인 중에 \'Expected Doctrine\\ORM\\Query\\Lexer::T_WITH, got \'ON\'\' 오류를 해결하는 방법은 무엇입니까?
Oct 29, 2024 am 04:24 AM교리에서 Left Join을 수행하는 방법
복잡한 데이터 모델로 작업할 때 여러 테이블 간의 관계를 설정하여 여러 테이블에서 데이터를 검색해야 합니다. Left 조인을 사용하면 한 테이블에서 모든 행을 가져오고 다른 테이블에서는 일치하는 행만 가져올 수 있습니다.
발생한 문제
Doctrine에서 Left 조인을 시도할 때 발생할 수 있는 일반적인 오류는 수신입니다. 다음 구문 오류:
[Syntax Error] line 0, col 98: Error: Expected DoctrineORMQueryLexer::T_WITH, got 'ON'
이 오류는 "ON"이 사용된 경우 발생합니다. "WITH" 대신 조인 절을 사용하세요. 이 문제를 해결하려면 아래와 같이 "ON"을 "WITH"로 바꾸십시오.
<code class="php">$qb->leftJoin('User\Entity\User', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.user = u.id')</code>
왼쪽 조인 구현
Doctrine에서 왼쪽 조인을 수행하려면 두 가지 접근 방식이 있습니다.
연결 포함:
엔티티가 조인하려는 테이블과 연결되어 있는 경우 다음 구문을 사용할 수 있습니다.
<code class="php">$qb ->select('a', 'u') ->from('Credit\Entity\UserCreditHistory', 'a') ->leftJoin('a.user', 'u') ->where('u = :user') ->setParameter('user', $users) ->orderBy('a.created_at', 'DESC');</code>
In 이 경우 "CreditEntityUserCreditHistory#user"는 두 엔터티 간의 연결을 나타냅니다.
연결 없음:
연결이 없으면 다음 구문을 사용할 수 있습니다.
<code class="php">$qb ->select('a', 'u') ->from('Credit\Entity\UserCreditHistory', 'a') ->leftJoin( 'User\Entity\User', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.user = u.id' ) ->where('u = :user') ->setParameter('user', $users) ->orderBy('a.created_at', 'DESC');</code>
이 쿼리는 두 테이블 모두에서 레코드를 검색하고 다음 형식의 배열이 포함된 결과 집합을 반환합니다.
<code class="php">array( array( 0 => UserCreditHistory instance, 1 => Userinstance, ), array( 0 => UserCreditHistory instance, 1 => Userinstance, ), // ... )</code>
위 내용은 Doctrine에서 왼쪽 조인 중에 \'Expected Doctrine\\ORM\\Query\\Lexer::T_WITH, got \'ON\'\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법

Laravel Back End : Part 2, React가있는 React 앱 구축
