Здравствуйте.
Имееется перечень курсов. И имеется перечень студентов по конкретному курсу.
На страничке перечня студентов (урл: mydomain.com/course-students/index?course_id=1)
имею поисковую форму:
$form = ActiveForm::begin(['id'=>'search-form', 'action'=>['index'], 'method'=>'get', 'fieldConfig'=>['options'=>['tag'=>false]]]);
echo Html::beginTag('div', ['class'=>'input-group', 'style'=>'width: 300px;']);
echo $form->field($model, 'search')->textInput(['class'=>'form-control pull-right', 'placeholder'=>'Поиск...'])->label(false);
echo Html::beginTag('span', ['class'=>'input-group-btn']);
echo (isset($model->search)) ? Html::a('<i class="fa fa-remove"></i>', $form->action, ['class'=>'btn btn-default reset']) : '';
echo Html::submitButton('<i class="fa fa-search"></i>', ['class'=>'btn btn-default']);
echo Html::endTag('span');
echo Html::endTag('div');
$form->end();
Экшн в форме указан как ['index']. Если провожу поиск, то контроллер закономерно ругается, что отсутствуют обязательные параметры: course_id. А поиск конкретного студента нужно проводить для конкретного курса
Вот контроллер:
public function actionIndex($course_id)
{
$searchModel = new CourseStudentsSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$dataProvider->query->andWhere(['course_id'=>$course_id]);
return $this->render('index', [
'searchModel'=>$searchModel,
'dataProvider'=>$dataProvider
]);
}
Поисковая форма универсальная, т.е. рендерится на разных страничках. Где-то get-параметры могут быть, где-то нет. Если они есть, то они не одинаковые и их кол-во разное.
Есть ли возможность в поисковой форме задать экшн вместе с GET-параметрами?