データベースのフィルターを作成しようとしています。いくつかのフォーム入力の値に基づいて、適切なクエリを作成する必要があります。これはコードです:
$qb = $em->createQueryBuilder();
$qb->select('c.title')
->from('Baza\BlogBundle\Entity\Conferences', 'c');
$conditions=array(
$qb->expr()->gt('c.title',$enquiry->getNaziv()) );//First condition
if ($enquiry->getKontakt()!=null) {
$conditions[] = $qb->expr()->lt('c.contactemail',$enquiry->getKontakt())}//Adding second, optional condition
$conditions = call_user_func_array(array($qb, 'andX'), $conditions);
$qb->where($conditions);
$query = $qb->getQuery();
これを実行すると、次の例外が発生します。
警告: call_user_func_array() はパラメーター 1 が有効なコールバックであることを期待しています。クラス 'Doctrine\ORM\QueryBuilder' にはメソッド 'andX' がありません
*編集 call_user_func_array() の変更後、次のエラーが発生します。
QueryException: SELECT c.title FROM Baza\BlogBundle\Entity\Conferences c WHERE c.title > ITRO AND c.contactemail < somemail@yahoo.com
明らかに、クエリは適切にフォーマットされていません。私はこの投稿をフォローしていました: Doctrine DQL conditional query
何かご意見は?