-1

我需要为我的约会网站构建一个 SQL/DQL 查询,它检索所有具有一些匹配字段(如性别、年龄、位置和 3 个兴趣)的用户。我不知道如何在我的 DQL 查询中创建多个条件。我从这样的事情开始:

SELECT u FROM MyUserBundle:User u WHERE u.sex LIKE :preference"); $query->setParameters(array('preference' => '%' . $preference . '%' 'age' => '%' . $age . '%' 'location' => '%' . $location . '%' 'interest' => '%' . $interests . '%')); $users = $query->getResult();

我正在使用 Symfony2 和 Doctrine2,但它对我不起作用。有人可以告诉我如何在我的查询中管理多个条件吗?谢谢你的帮助!

4

1 回答 1

3

如果查询更复杂,最好使用 Doctrine2 Query Builder

$qb =  $this->getDoctrine()->getEntityManager()->createQueryBuilder();

$qb
   ->select('u')
   ->from('MyUserBundle:User', 'u')
   ->where($qb->expr()->like('u.sex', ':preferense'))
   ->andWhere($qb->expr()->like('u.age', ':age'))
   ->andWhere($qb->expr()->like('u.location', ':location'))
   ->andWhere($qb->expr()->like('u.interest', ':interest'))
   ->setParameters(array(
      'preferense' => '%'.$preference.'%',
      'age' => '%'.$location.'%',
      'location' => '%'.$location.'%',
      'interest' => '%'.$interests.'%',
   ));

$users = $qb->getQuery()->getResult(); 

提示:如果 $interests 是数组,请使用 foreach。

于 2013-01-16T05:30:53.337 回答