2012-04-16 4 views
1

Doctrine 2 사용 다른 사용자의 연락처 인 일부 사용자를 얻고 싶습니다. 표 user에는 해당 사용자 간의 매핑이 포함되어 있습니다.잘못된 매개 변수 번호 : 바운드 변수 수가 Doctrine의 토큰 수와 일치하지 않습니다.

최선 이해 $str에 그러나

Invalid parameter number: number of bound variables does not match number of tokens.

이 "B"로 설정하고 $ownerId는 "2"로 설정되고 모두가 setParameters 기능에 의해 할당됩니다 : 함수의 쿼리는 다음 오류를 반환합니다.

답변

16

검색어 텍스트의 매개 변수를 따옴표로 묶지 마십시오.

->add('where', "c.owner = ?1 AND c.contact = u.id AND u.username LIKE '?2'") 

->add('where', "c.owner = ?1 AND c.contact = u.id AND u.username LIKE ?2") 
+10

내 상황이 querybuilder를 사용하여 약간의 차이가 있어야한다. 필자의 경우 $ queryBuilder-> where (...) -> setParameters (...)를 사용하여 만들었지 만 동적으로 추가 된 구문이 몇 개 있었기 때문에 andWhere()를 사용해야했습니다. – Shawn

관련 문제