我对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"。
任何人都可以帮助我吗?
答案 0 :(得分:4)
这听起来很简单 - 您只需将查询数据合并为预定义数据:
$dataProvider = $searchModel->search(\yii\helpers\ArrayHelper::merge(
Yii::$app->request->queryParams,
[$searchModel->formName() => ['is_cod_candidato' => $candidateId]]
));
如果您将预定义数据作为第一个参数,则可以通过用户请求重新定义。