yii2:如何在SerachModel中添加固定过滤器 - >搜索(...)

时间:2015-06-24 16:10:06

标签: php search model yii2

我对Yii很新,我面临一个小问题, 我想显示一个已经过滤的表,并允许带有查询参数字符串的过滤器。

我在Controller

中声明了一个新动作
public function actionIndexFiltered($candidateId)
{
    $searchModel = new CvRisorsaTitoloSearch();
    //$dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    $dataProvider = $searchModel->search([$searchModel->formName() => ['is_cod_candidato' => $candidateId]]);

    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
    ]);
}

此代码有效,但它不允许使用查询参数进行过滤。

' CvRisorsaTitolo'是一个多对多的"表与其他信息, 和' is_cod_candidato'是一个CvRisorsaTitolo'。

的领域

我可以将我的过滤器和查询参数过滤器与其他文件结合起来" Yii :: $ app-> request-> queryParams"。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

这听起来很简单 - 您只需将查询数据合并为预定义数据:

$dataProvider = $searchModel->search(\yii\helpers\ArrayHelper::merge(
    Yii::$app->request->queryParams,
    [$searchModel->formName() => ['is_cod_candidato' => $candidateId]]
));

如果您将预定义数据作为第一个参数,则可以通过用户请求重新定义。