我对Yii很陌生,我面临着一个小问题,我想显示一个已经筛选过的表,并允许使用查询参数字符串进行筛选。
我在控制器中宣布一个新操作
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_candidateto"是"CvRisorsaTitolo"的一个字段。
我如何将我的过滤器和其他文件"Yii::$app->request->queryParams"中的查询参数过滤器结合起来。
有人能帮我吗?
这听起来很简单-您只需将查询数据合并为预定义的数据:
$dataProvider = $searchModel->search('yii'helpers'ArrayHelper::merge(
Yii::$app->request->queryParams,
[$searchModel->formName() => ['is_cod_candidato' => $candidateId]]
));
如果您将预定义的数据作为第一个参数,它可能会被用户请求重新定义。