Ich erstelle Filter Formular für meine Daten mit Datenanbieter und Suchmodell und ein Problem, wenn meine Filterparameter in URL kopieren, wenn ich mehr als einmal auf Senden Schaltfläche klicken.Filter kopieren Parameter in URL
Modell ApartmentsSearchsearch
Methode:
public function search($params)
{
$query = Apartments::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
if (!($this->load($params) && $this->validate())) {
return $dataProvider;
}
$query->andFilterWhere([
'rooms' => $this->rooms,
]);
return $dataProvider;
}
-Controller actionIndex
Methode:
public function actionIndex()
{
$searchModel = new ApartmentsSearch();
$dataProvider = $searchModel->search(Yii::$app->request->get());
return $this->render('index', [
'dataProvider' => $dataProvider,
'searchModel' => $searchModel,
]);
}
View mit Listview widget:
<?= $this->render('_filter', ['searchModel' => $searchModel]); ?>
<?= ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => '_list',
'options' => [
'tag' => 'div',
'class' => 'apartments-list',
],
'layout' => '{summary}{items}{pager}',
'summary' => 'Показано квартири: <b>{begin}-{end}</b> з <b>{totalCount}</b>.',
'summaryOptions' => [
'tag' => 'div',
'class' => 'summary',
],
'itemOptions' => [
'tag' => 'div',
'class' => 'apartment-item',
],
]); ?>
Und _filter.php Ansicht mit Form: So
<?php $form = ActiveForm::begin([
'method' => 'get',
]); ?>
<?= $form->field($searchModel, 'rooms') ?>
<div class="form-group">
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
<?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
</div>
<?php ActiveForm::end(); ?>
, wenn ich Eingabe einer beliebigen Anzahl in Feld und klicken Sie auf Absenden Ich sehe url wie folgt aus:
http://localhost/?ApartmentsSearch[rooms]=2
Wenn ich zweites Mal klicken Ich sehe url mit kopierten Parameter:
http://localhost/?ApartmentsSearch[rooms]=2&ApartmentsSearch[rooms]=2
ich nicht kopieren Parameter in url will, muss ich Wert eines Parameters ändern.
Können Sie mir helfen?