0

我正在尝试构建搜索查询,这里是

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

        ->all();

正如我所拥有$keywordsArrayTrimed[$i]的包含关键字一样,关键字的数量在每个请求中都不同,如何实现这一点。

我尝试过使用 for 循环,它会出现错误Unexpected for loop

我厌倦了使用过滤器这样

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

        ]);

它没有用。请帮忙。

4

1 回答 1

1

你应该简单地试试这个:

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

// fetch results
$searchResult = Candidate::find()->where($condition)->all();
于 2016-02-18T09:37:44.620 回答