Как запретить добавление GET-параметров к уже существующим?

Передаю параметры с помощью метода GET. URL выглядит следующим образом ?SearchForm%5Bage%5D=1
При повторной отправке данных в URL не меняется то, что уже есть, а добавляется еще одна куча данных
?SearchForm%5Bage%5D=1&SearchForm%5Bage%5D=1

Как сказать Yii2, чтобы он не нагромождал URL данными?

Модель
class SearchForm extends Model
{
    public $age;
}


Контроллер
$model = new SearchCleanerForm();
$model->load(Yii::$app->request->get());
return $this->render('list', ['model' => $model]);


Представление
<?php
$form = ActiveForm::begin([
    'id' => 'search-cleaners',
    'method' => 'get',
    'options' =>['class' => 'form-vertical'],
]);
?>

<?= $form->field($model, 'smoking') ?>

<?php ActiveForm::end(); ?>
  • Вопрос задан
  • 374 просмотра
Решения вопроса 1
@tincap Автор вопроса
Помог только ручной ввод формы.

<form action="<?= Url::toRoute(['/cleaner/list']) ?>" method="get" class="form-vertical" id="search-cleaners">
<?= Html::activeTextInput($model, 'age') ?>
</form>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@karminski
Senior React.JS Developer
Нужно в виджете ActiveForm добавить параметр action равный вашему route без параметров. Например,

$form = ActiveForm::begin([
    'id' => 'search-cleaners',
    'method' => 'get',
    'action' => ['/cleaner/list'],
    'options' =>['class' => 'form-vertical'],
]);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы