我通过字符串搜索获取数据
例如)“滑雪”“网球”或搜索。我可以像这样获取数据。
$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个关键字呢?)
但如果我事先无法判断关键字的数量,
我该如何解决?
为此目的有好办法吗?
答案 0 :(得分:1)
这样的事情应该有效(未经测试)。
$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();