私がやりたいことはかなり「古典的」に思えますが、例が見つかりません...これは、ほとんどがオプションのパラメーターを持つ一種の検索フォーム用です。
これが私のコードです:
$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
それを達成するためのより良い方法があると確信していますが、私はそれを見つけられません!