我使用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 上找到了各种解决方案,但任何东西都可以帮助我。 我需要帮助,谢谢!!!!
试试这个:
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]));
您可以使用
Yii::$app->request->referrer
返回用户所在的最后一页。
使用简单:
return $this->redirect(Yii::$app->request->referrer);
您还需要考虑到
referrer
可以是 null
:
return $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl);