Yii2搜索模型

时间:2018-11-28 07:31:32

标签: yii2 yii2-basic-app

在我的网站上,当我搜索Alex Lau时,将显示结果Alex Lau。问题是如何修改代码,这样当我搜索Lau Alex时,它仍会显示Alex Lau结果。现在没有。

$query->orFilterWhere(['like', 'fullname', $this->globalSearch])

这是我的搜索模型中的代码。

请帮助我。

谢谢!

2 个答案:

答案 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 lastfirst middle last格式搜索名称,则此方法可以正常工作,这意味着您可以搜索Alex Lau JohnJohn Alex Lau {{1 }}