我正在尝试为我的数据库构建过滤器。基于几个表单输入的值,我需要构造适当的查询。这是代码:
$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 条件查询
有什么想法吗?