2016-12-02 1 views
0

symfony 2 프로젝트에서 다 대다 관계를 가지고 있으며 왼쪽에 조인을 만들려고하는데 오류가 있습니다. 내가 의사와 게시물 백 백을 읽었지만 솔루션을 찾을 수 없습니다.Symfony 2는 많은 관계가있는 많은 관계가 있습니다. 함선에 InvalidPathExpression 오류가 발생했습니다.

[의미 론적 오류] 라인 0, COL (162) 근처의 '사용자 = U WHERE': 오류 : 잘못된 PathExpression 당신이 날 여기

: 오류를 알아 내기 위해 도움이 될 수 있기를 바랍니다. StateFieldPathExpression 또는 SingleValuedAssociationField가 필요합니다. 여기

나의 관계 :

AdminBundle\Entity\KeywordNeed: 
    ... 
manyToMany: 
     users: 
      targetEntity: User 
      mappedBy: keywordNeeds 

그리고 기타 단체 :

AdminBundle\Entity\User: 
... 
keywordOffers: 
      targetEntity: AdminBundle\Entity\KeywordOffer 
      inversedBy: users 
      nullable: true 
      joinTable: 
       name: users_keywordoffer 
       joinColumns: 
        user_id: 
         referencedColumnName: id 
       inverseJoinColumns: 
        keywordoffer_id: 
         referencedColumnName: id 

마지막으로 SQL 요청 나는 생성 : 당신의 도움에 대한

SELECT distinct u FROM AdminBundle\Entity\Network n 
INNER JOIN AdminBundle\Entity\User u WITH n.startup = u 
LEFT JOIN AdminBundle\Entity\KeywordOffer ko WITH ko.users = u 
WHERE n.network = :oUser 
AND (u.lastName like '%blabla%' OR u.firstName like '%blabla%' OR u.company like '%blablaa%') 
AND ko in ('7','6') 

감사를

답변

0

너는 할 수있다. 함께 사용하는 insetad 가입을위한 접착제로 필드 이름을 사용 : 다른 참여 제약 조건을 추가하거나이되지 관련 단체에 가입 할 때

SELECT distinct u FROM AdminBundle\Entity\Network n 
INNER JOIN AdminBundle\Entity\User u WITH n.startup = u 
LEFT JOIN u.keywordOffers ko 
... 

을 절을 실제로 유용합니다. 네트워크는 시작 필드에서 사용자에 연결되어있는 경우 당신은 또한 당신이 DQL 향상시킬 수 있습니다 :

SELECT distinct u FROM AdminBundle\Entity\Network n 
INNER JOIN n.startup u 
LEFT JOIN u.keywordOffers ko 
... 

도움이 되었기를 바랍니다.

0

답장을 보내 주셔서 감사합니다. 불행히도 나는 이것을 시도해 본 결과가 좋지 않았다. 그러나 나는 그것을 할 또 다른 방법을 발견했다. 두 가지 요청으로 요청을 잘라 냈습니다. 먼저 내 내부 조인을 필터링 한 다음 왼쪽 조인 결과를 다른 조인으로 만듭니다.

관련 문제