createQueryBuilder()を作ってselect(), from()などを指定していきます。
select(xx) xxにはカラム名を指定します。
leftJoinを使うことがきっと多いと思うのでサンプルはすべてleftJoin入れておきました。
whereを指定するには
$em = $this->getDoctrine()->getManager(); $qb = $em->createQueryBuilder(); $qb->select('a') ->from('Acme\YourBundle\Entity\ClassA', 'a') ->leftJoin('Acme\YourBundle\Entity\ClassB', 'b', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.id = b.id'); $result = $qb->where( $qb->expr()->eq('b.category', 1) ) ->orderBy('a.id', $orderby) ->andWhere('a.is_enable = 1'); $result->getQuery()->getResult();
LIKEを使うには下記のように
$em = $this->getDoctrine()->getManager(); $qb = $em->createQueryBuilder(); $qb->select('a') ->from('Acme\YourBundle\Entity\ClassA', 'a') ->leftJoin('Acme\YourBundle\Entity\ClassB', 'b', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.id = b.id'); $result = $qb->where( $qb->expr()->like('b.title', '%キーワード%') ) ->orderBy('a.id', $orderby) ->andWhere('a.is_enable = 1'); $result->getQuery()->getResult();