Установите enablePushState = false для определенных URL-адресов внутри контейнера Pjax (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 для других событий, поэтому я не могу изменить его на false внутри Pjax::begin

2 ответа

Решение

Я верю что это

'enableReplaceState' => true

Передайте этот атрибут в Pjax: Pjax::begin(['enablePushState' => false]); Это сработало для меня.

Другие вопросы по тегам