-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クエリビルダーを使用することをお勧めします

$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 に答える