2016-02-18 28 views
0

我试图构建查询搜索,这里是建立Yii2搜索查询

 $searchResult = Candidate::find() 
     ->select('HRMS_candidateID, HRMS_candidateFirstName','HRMS_candidateMiddleName') 
     ->where(['LIKE', 'HRMS_candidatePrimarySkills', $keywordsArrayTrimed[$i]]) 

     ->all(); 

正如我有$keywordsArrayTrimed[$i]其中包含关键字,关键字的数量计数为每个请求如何实现这一目标不同。

我已经尝试使用循环,它会出错Unexpected for loop

我厌倦了使用过滤器筛选

$searchResult->andFilterWhere([ 
      'or', 
      ['like', 'HRMS_candidatePrimarySkills', $keywordsArrayTrimed[$i]], 

     ]); 

它没有工作。请帮忙。

+0

向我们展示你的循环,并增加约$ keywordsArrayTrimed – soju

+0

@soju增加了对循环 – Piyush

+0

$ keywordsArrayTrimed细节的话 – Piyush

回答

1

你应该简单地尝试这个办法:

// build condition 
$condition = ['or']; 
foreach ($keywordsArrayTrimed as $keyword) { 
    $condition[] = ['like', 'HRMS_candidatePrimarySkills', $keyword]; 
} 

// fetch results 
$searchResult = Candidate::find()->where($condition)->all();