我正在通过字符串搜索获取数据
例如)"滑雪"网球"或搜索。我可以像这样获取数据。
$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();