2012-04-16 20 views
1

Doctrine 2を使用する別のユーザーの連絡先であるユーザーを取得したいとします。テーブルuserには、それらのユーザー間のマッピングが含まれています。 「B」に設定されていると$ownerIdが「2」に設定され、両方がsetParameters機能によって割り当てられている私の最高の理解$strにしかし無効なパラメータ番号:バインドされた変数の数がDoctrineのトークンの数と一致しません

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

:関数内のクエリは、次のエラーが返されます

答えて

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

関連する問題