Symfony 将两个doctrine2查询合并为一个查询
我有以下疑问:Symfony 将两个doctrine2查询合并为一个查询,symfony,orm,doctrine-orm,doctrine,Symfony,Orm,Doctrine Orm,Doctrine,我有以下疑问: $query = $qb->select('DISTINCT s') ->from("MainBundle:Shop", 's') ->andWhere('SOUNDEX(s.fullname) = SOUNDEX(:shopName)'); $parameter["shopName"] = $searchquery; $query->setParameters($parameter);
$query = $qb->select('DISTINCT s')
->from("MainBundle:Shop", 's')
->andWhere('SOUNDEX(s.fullname) = SOUNDEX(:shopName)');
$parameter["shopName"] = $searchquery;
$query->setParameters($parameter);
$query = $qb->select('DISTINCT s')
->from("MainBundle:Shop", 's')
->andWhere($qb->expr()->like('s.fullname', $qb->expr()->literal('%' . $searchquery . '%')));
是否可以将这两个查询合并为一个?如果第二个查询有效,则应该可以:
$em = $this->getEntityManager();
$qb = $em->createQuery('
SELECT DISTINCT s
FROM MainBundle:Shop p
WHERE Soundex(s.fullname) = :soundex(shopname) OR
($qb->expr()->like('s.fullname', $qb->expr()->literal('%' . $searchquery . '%')))
');
$parameter["shopName"] = $searchquery;
$query->setParameters($parameter);
你可以写或不写一个查询吗?我没有检查,但我想是的。您可以使用运算符“AND”和“OR”来连接属性,所以我想是的。