【Symfony】DoctrineのQueryBuilderでWHERE句のAND・OR組み合わせ
<?php // SELECT FROM product // JOIN category ON product.category_id = category.id // WHERE category.name LIKE '%カテゴリ名%' // AND (product.name LIKE '%商品名%' OR product.price < 商品価格); $qb->select('p') ->from('AppBundle:Product', 'p') ->join('p.category', 'c') ->where('c.name like :categoryName') ->andWhere($qb->expr()->orX( $qb->expr()->like('p.name', ':productName'), $qb->expr()->lt('p.price', ':price') )) ->setParameter('categoryName', '%'.$categoryName.'%') ->setParameter('productName', '%'.$productName.'%') ->setParameter('price', $price) ;