私がやりたいことはかなり「古典的」に思えますが、例が見つかりません...これは、ほとんどがオプションのパラメーターを持つ一種の検索フォーム用です。
これが私のコードです:
$obj = $this->getEntityManager()
        ->createQueryBuilder()
            ->select("p")
            ->from("Client")
        if ($email) {
            $obj->add('where', $obj->expr()->like('p.email', ':email'));
        }
        if ($name) {
            $obj->add('where', $obj->expr()->like('p.name', ':name'));
        }
        if ($firstname) {
            $obj->add('where', $obj->expr()->like('p.firstname', ':firstname'));
        }
        if ($postalCode) {
            $obj->add('where', $obj->expr()->like('p.postalCode', ':postalCode'));
        }
$obj->setParameters(array('email' => $email,'name'=> $name, 'firstname' => $firstname, 'postalCode' => $postalCode))
        ->getQuery()->getResult();
しかし、もちろん、 にいくつかのパラメーターがある場合null:Invalid parameter number: number of bound variables does not match number of tokens 
それを達成するためのより良い方法があると確信していますが、私はそれを見つけられません!