更新记录后如何返回上一页?

问题描述 投票:0回答:2

我使用Yii2,也遇到这个问题。这是我的更新操作:

public function actionUpdate($id)
    {
      $searchModel = new AutoriSearch();
      $searchModel1 = new EditoriSearch();
      $searchModel2 = new LuoghiSearch();
      $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
      $dataProvider1 = $searchModel1->search(Yii::$app->request->queryParams);
      $dataProvider2 = $searchModel2->search(Yii::$app->request->queryParams);
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->IDBibliografia]);
        }

        return $this->render('update', [
            'model' => $model,
            'dataProvider' => $dataProvider,
            'dataProvider1' => $dataProvider1,
            'dataProvider2' => $dataProvider2,
            'searchModel' => $searchModel,
            'searchModel1' => $searchModel1,
            'searchModel2' => $searchModel2
        ]);
    }

我想在保存后返回到上一页。所以问题出在原始重定向上。因此,我单击索引中的按钮,转到更新操作。然后,当我保存更新时,我想返回索引(但它需要是具有相同前一个 Url 的相同前一页)。我在 Stack 上找到了各种解决方案,但任何东西都可以帮助我。 我需要帮助,谢谢!!!!

url yii2 updates
2个回答
1
投票

试试这个:

return $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl);

可能与 Yii2 重定向到上一页

重复

如果您需要捕获 url 之前,您可以使用 yii2 的会话将引荐来源网址存储在 actionUpdate 中,如下所示(例如,从索引中捕获搜索参数和页号):

Yii::$app->session->set('url', Yii::$app->request->referrer ?: Yii::$app->homeUrl);

保存后重定向:

return $this->redirect(Yii::$app->session->get('url', ['view', 'id' => $model->IDBibliografia]));

0
投票

您可以使用

Yii::$app->request->referrer
返回用户所在的最后一页。

使用简单:

return $this->redirect(Yii::$app->request->referrer);

您还需要考虑到

referrer
可以是
null
:

return $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.