在 Pjax 容器 (Yii2) 内的特定 url 上设置 enablePushState = false

Set enablePushState = false on specific urls inside Pjax container (Yii2)

我需要 pjax 来处理更改状态点击,它工作正常但不希望它也更改 URL。下面是代码:

<?php Pjax::begin(['id'=>'pjax-container-agency-index', 'timeout' => 10000, 'enablePushState' => true]); ?>
<?= GridView::widget([...,
             [
                'label' => 'Status',
                'format' => 'raw',
                'value' => function ($data) {
                    if ($data->deactive == 0) {
                        return Html::a(FA::i('circle'), ['agency/change-status', 'id' => $data->member_id, 'set' => 1], ['onclick' => "return confirm('Deactive this state/site?');", 'class' => 'status-inactive']);
                    } else {
                        return Html::a(FA::i('circle'), ['agency/change-status', 'id' => $data->member_id, 'set' => 0], ['onclick' => "return confirm('Active this state/site?');", 'class' => 'status-active']);
                    }
                },
             ],
]);
<?php Pjax::end(); ?>

actionChangeStatus()如下:

public function actionChangeStatus($id, $set) {
    if (!empty($id) && isset($set)) {
        $localGovt = $this->findModel($id);
        $localGovt->deactive = $set;
        if ($localGovt->save()) {
            Yii::$app->getSession()->setFlash('success-status', 'State Status Changed');
        } else {
            Yii::$app->getSession()->setFlash('error-status', 'There is some error. Please consult with Admin.');
        }
        $searchModel = new AgencySearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
           'searchModel' => $searchModel,
           'dataProvider' => $dataProvider
        ]);
    }
}

注意:其他活动我需要'enablePushState' => true,无法在Pjax::begin[=16里面改成false =]

我相信是

'enableReplaceState' => true

将此属性传递给 Pjax: Pjax::begin(['enablePushState' => false]); 这对我有用。