gpt4 book ai didi

php - 多列 Symfony Doctrine 上的多词搜索

转载 作者:行者123 更新时间:2023-11-28 23:37:40 25 4
gpt4 key购买 nike

我正在尝试制作一个多词搜索,该搜索将查询表中的多个列。到目前为止,我的代码对于单个列来说效果很好,但正如您可以想象的那样,将它用于多个列就会成为一个问题。

如果我添加 orWhere 它将不起作用,而且我真的不想创建更多 for 循环,因为它会变得非常麻烦。有什么想法吗?

$query = $request->getParameter("article-search");
$keywords = explode(" ", $query);

for( $i = 1; $i <= count( $keywords ); $i++ ){
$q->addWhere("a.title LIKE ?", "%" . $keywords[$i - 1] . "%");
}

最佳答案

我就是这样做的..也许它对某人有帮助..

$now = "some other parameter";

$parts = explode(" ",trim($searchtext));
$clauses=array();
// static paramtter setted here
$parameters = array(
':now' => $now
);

$i = 0;
foreach ($parts as $part){
// for every word make new search query and parameter
$parameters[":param".$i] = "%".$part."%";
if($i == 0){
$clauses = "v.description LIKE :param".$i." OR v.name LIKE :param".$i." OR v.sale LIKE :param".$i;
} else {
$clauses .= " OR v.description LIKE :param".$i." OR v.name LIKE :param".$i." OR v.sale LIKE :param".$i;
}
$i ++;
}

$qb->select('v')
->from('MyBundle\Entity\Voucher', 'v')
->where('v.date_start <= :now')
->andWhere('v.date_end >= :now')

->andWhere($clauses)
->setParameters($parameters);

关于php - 多列 Symfony Doctrine 上的多词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35352926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com