或按原则2按不固定数量的关键字进行搜索



我正在通过字符串搜索获取数据

例如)"滑雪"网球"或搜索。我可以像这样获取数据。

$articles  = $em->createQuery(
    "SELECT a FROM AcmeTopBundle:ArticleData a
    where a.title like :keyword OR a.title like :keyword2
    order by a.createdAt DESC")
->setParameters(array('keyword' => 'ski','keyword2' => 'tennis'))
->getResult();

如果我能知道我需要多少个关键字,它效果很好。

(在这种情况下有2个关键字,但如果3个关键字呢?

无论如何,如果我不能事先告诉关键字的数量,

我该如何解决?

有没有好办法来实现这个目的?

这样的东西应该可以工作(未经测试)。

$qb = $em->createQueryBuilder();
$qb->select('a')
   ->from('AcmeTopBundle:ArticleData a')
   ->orderBy('a.createdAt', 'DESC');
foreach ($keywords as $i => $keyword) {
    $qb->orWhere('a.title LIKE ?' . $i)->setParameter($i, $keyword);
}
$articles = $qb->getQuery()->getResult();

相关内容

  • 没有找到相关文章