Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在URL中筛选复制参数_Php_Yii2 - Fatal编程技术网

Php 在URL中筛选复制参数

Php 在URL中筛选复制参数,php,yii2,Php,Yii2,我使用数据提供程序和搜索模型为数据创建筛选表单,但当我多次单击“提交”按钮时,在url中复制筛选参数时出现问题 型号的公寓搜索搜索方法: public function search($params) { $query = Apartments::find(); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); if (!($this->load($para

我使用数据提供程序和搜索模型为数据创建筛选表单,但当我多次单击“提交”按钮时,在url中复制筛选参数时出现问题

型号的公寓搜索
搜索方法:

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;
}
public function actionIndex()
{
    $searchModel = new ApartmentsSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->get());

    return $this->render('index', [
        'dataProvider' => $dataProvider,
        'searchModel' => $searchModel,
    ]);
}
控制器
actionIndex
方法:

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;
}
public function actionIndex()
{
    $searchModel = new ApartmentsSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->get());

    return $this->render('index', [
        'dataProvider' => $dataProvider,
        'searchModel' => $searchModel,
    ]);
}
使用ListView小部件查看:

<?= $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',
        ],
]); ?>
当我第二次单击时,我看到带有复制参数的url:

http://localhost/?ApartmentsSearch[rooms]=2&ApartmentsSearch[rooms]=2
我不想复制url中的参数,我需要更改任何参数的值

你能帮我吗?

解决了

在活动窗体中,我忘记添加
操作
属性:

<?php $form = ActiveForm::begin([
    'action' => ['index'],
    '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(); ?>