在我的网站上,当我搜索Alex Lau时,将显示结果Alex Lau。问题是如何修改代码,这样当我搜索Lau Alex时,它仍会显示Alex Lau结果。现在没有。
$query->orFilterWhere(['like', 'fullname', $this->globalSearch])
这是我的搜索模型中的代码。
请帮助我。
谢谢!
答案 0 :(得分:1)
尝试一下
const newarray = [{"name":"joseph","time":"0","status":"Calling"}];
const previousarray = [...newarray];
for(let i = 0; i < newarray.length; i++) {
for(let j = 0; j < previousarray.length; j++) {
if(previousarray[j].status != newarray[i].status) {
newarray[i].time = moment().format('H:mm:ss');
}
}
}
注意:您需要确保空白
答案 1 :(得分:1)
使用CONCAT()
如下所示根据MYSQL查询的更好方法
if( $this->fullname!== null && $this->fullname !== '' ){
$searchTerms = explode(" ", $this->fullname);
if( sizeof($searchTerms) > 1 ){
$conditions[]='OR';
foreach( $searchTerms as $term ){
$conditions[] = ['like', 'fullname', new \yii\db\Expression('CONCAT(CONCAT("%","' . $term . '"),"%")')];
}
$query->orFilterWhere($conditions);
} else{
$query->orFilterWhere(
['like', 'fullname', new \yii\db\Expression('CONCAT(CONCAT("%","' . $searchTerms[0] . '"),"%")')]
);
}
}
注意:如果您以first last
或first middle last
格式搜索名称,则此方法可以正常工作,这意味着您可以搜索Alex Lau John
或John Alex Lau
{{1 }}